当前位置: 首页 > news >正文

山东临沂网站设计公司软文推广平台

山东临沂网站设计公司,软文推广平台,哪里有南宁网站建设,网站建设 美词前言 需求#xff1a;显示一个时间刻度尺#xff0c;鼠标移动会显示当前时间 技术#xff1a;我们采用canvasfabric进行实现 效果 实现 1.创建canvas#xff08;设置宽高#xff09;设为全局变量 2.引入fabric包 3.画时间刻度尺#xff08;长方形横线#xff09; …前言 需求显示一个时间刻度尺鼠标移动会显示当前时间 技术我们采用canvasfabric进行实现 效果 实现 1.创建canvas设置宽高设为全局变量 2.引入fabric包 3.画时间刻度尺长方形横线 4.增加鼠标移动事件并画虚线时间显示 5.增加鼠标离开事件并销毁虚线时间 templatedivcanvas idrulerCanvas width1200 height400/canvas/div /template script setup import * as fabric from fabric; import {ref, onMounted} from vue;const canvas ref(null);onMounted(() {drawRuler(); });let movDummyLine null; let movDummyLineText null;const onMouseMove (options) {if (options.pointer.x 40) {if (movDummyLine) {canvas.value.remove(movDummyLine);canvas.value.remove(movDummyLineText);}// 添加虚线movDummyLine new fabric.Line([0, 800, 1, 0], {stroke: red,strokeDashArray: [5, 5],strokeWidth: 1,selectable: false,}).set({ left: options.pointer.x, top: 36 });canvas.value.add(movDummyLine);// group.add(movDummyLine);// 添加文字 (options.pointer.x)let startNumber options.pointer.x - 40 20;let timeNumber parseInt(startNumber / 20);movDummyLineText new fabric.Text(timeToStr(timeNumber), {fontSize: 12,fill: black,selectable: false,textAlign: center,}).set({ left: options.pointer.x - 12, top: 20 });canvas.value.add(movDummyLineText);// group.add(movDummyLineText);}};const drawRuler () {canvas.value new fabric.Canvas(rulerCanvas);// 鼠标事件canvas.value.on(mouse:move, onMouseMove);canvas.value.on(mouse:out, () {if (movDummyLine) {canvas.value.remove(movDummyLine);canvas.value.remove(movDummyLineText);movDummyLine null;movDummyLineText null;}});// 时间刻度const startHour 0;const startMinute 0;const intervalMinutes 5; // 间隔const totalHours 1; // 当前刻度时间let currentMinute startMinute;let currentHour startHour;// 长方形const rect new fabric.Rect({left: 0,top: 0,width: 1100,height: 40,fill: #fff,strokeWidth: 1, // 边框宽度selectable: false,});canvas.value.add(rect);// 底部边框const bottomBorder new fabric.Line([0, 40, 1200, 40], {stroke: #000000,strokeWidth: 1,selectable: false,});canvas.value.add(bottomBorder);// 时间刻度for (let i 0; i totalHours * 60; i intervalMinutes) {const x (i / (totalHours * 60)) * canvas.value.width 40;const timeText formatTime(currentHour, currentMinute);// 画刻度线const b new fabric.Line([x, 50, x, 60], {stroke: black,strokeWidth: 1,selectable: false,}).set({ left: x, top: 28 });canvas.value.add(b);// 添加时间文本const a new fabric.Text(timeText, {fontSize: 12,fill: black,selectable: false,textAlign: center,}).set({ left: x-14, top: 10 });canvas.value.add(a);// 更新分钟和小时currentMinute intervalMinutes;if (currentMinute 60) {currentMinute 0;currentHour;}} };const formatTime (hour, minute) {return ${String(hour).padStart(2, 0)}:${String(minute).padStart(2, 0)}; };const timeToStr (seconds) {const minutes Math.floor(seconds / 60);const secs seconds % 60;const paddedMinutes String(minutes).padStart(2, 0);const paddedSeconds String(secs).padStart(2, 0);return ${paddedMinutes}:${paddedSeconds}; }; /script style#rulerCanvas {border: 1px solid black;} /style如果侵权请联系我删除。
http://www.hkea.cn/news/14524946/

相关文章:

  • 自做跨境电商网站收款自己做网站 怎么赚钱
  • 惠州 网站建设好文案网站
  • 人力招聘网站建设目的淘宝联盟怎么新建网站
  • 西安mg动画制作网站建设北京专业网站制作价格
  • 中企动力网站建设 长春电影网站开发视频
  • 公司网站现状装修网站平台排行榜
  • 免费网络推广网站网站建设与管理读书心得
  • 汇泽网站建设全国免费信息发布平台
  • 网站源码下载 用户注册域名备案和网站备案的区别
  • 模具外贸营销网站如何做村网站建设计划书
  • 珠海企业建站模板网站页面设计公司电话
  • 网站建设实现用户登录玉林网站制作
  • 广西网站建设哪里有网站建设费用模板
  • 免费做头像网站有哪些wordpress 会议网站
  • 怎么选wordpress模板厦门seo百度快照优化
  • 常州微信网站建设好么推广营销海外网站
  • 七台河建设网站大连关键词排名系统
  • 个人网站怎么建立网站建设前途
  • wordpress 开启伪静态网站seo诊断湖南岚鸿
  • 徐州建站公司模板成都网站建设方案优化
  • 网站自动站建做暧视频网站大全
  • 泊头公司做网站重庆网站营销案例
  • 网站建设技术指标有哪些好的做兼职的网站
  • 国内html5网站案例微盟如何做网站
  • 做单网站网站建设项目收获
  • 网站优化关键词排名公司名字做头诗的网站
  • 高端建设网站做淘宝券网站
  • 网站集群系统建设推广平台的方式有哪些
  • 怎么建设自己导购网站深圳网站制作价格
  • 重庆做蔬菜配送的网站有哪些wordpress4.9.6中文版