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

如何查找网站的死链接免费招聘信息发布平台

如何查找网站的死链接,免费招聘信息发布平台,巴中网站建设,小米手机如何做游戏视频网站前言 需求:显示一个时间刻度尺,鼠标移动会显示当前时间 技术:我们采用canvasfabric进行实现 效果 实现 1.创建canvas(设置宽高)设为全局变量 2.引入fabric包 3.画时间刻度尺(长方形横线) …

前言

需求:显示一个时间刻度尺,鼠标移动会显示当前时间

技术:我们采用canvas+fabric进行实现

效果

实现

1.创建canvas(设置宽高)设为全局变量

2.引入fabric包

3.画时间刻度尺(长方形+横线)

4.增加鼠标移动事件并画虚线时间显示

5.增加鼠标离开事件并销毁虚线时间

<template><div><canvas id="rulerCanvas" width="1200" height="400"></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.ritt.cn/news/15929.html

相关文章:

  • 珠海建网站专业公司网站seo收费
  • 国内互动网站建设seo结算系统
  • 做渲染的网站百度的排名规则详解
  • 茂名市建设银行网站市场营销策划方案案例
  • 办文明网站 做文明网民活动seo是什么岗位
  • 网站百度seo推广怎么做郑州网站
  • wordpress视频教程下载地址网站优化排名首页
  • 做网站排名步骤百度一下浏览器下载安装
  • 北京网站被处罚整站优化深圳
  • 宝应网站建设深圳seo推广外包
  • 网络推广公司挣钱吗优化的含义是什么
  • 灵璧网站建设天津seo数据监控
  • 一个网站的二级目录在另一台服务器上_怎么做查找关键词的工具叫什么
  • 网站建设目标长沙今日头条新闻
  • 辽宁建设工程信息网解锁需要什么资料泰州网站排名seo
  • 网站开发的公司排名天津做优化好的公司
  • 宁波网站建设与设计开发合肥网络推广网络运营
  • 万网域名注册电话济南seo优化
  • 南昌做公司网站网上推销产品去什么平台
  • 深圳兼职做网站bt磁力库
  • 什么样的网站好优化广州seo优化公司排名
  • 品牌网站设计视频教程好推建站
  • 诚信网站认证怎么做百度推广开户费
  • 企业网站的建设流程包含哪些环节企业百度推广
  • php购物网站开发设计培训机构退费纠纷一般怎么解决
  • 前端个人网站怎么做火蝠电商代运营公司
  • 南京 做网站今天热点新闻事件
  • 济南网站建设力推搜点网络ok上海搜索引擎优化公司排名
  • 企业营销型网站建设团队windows优化大师官方
  • 最便宜的网站免费b2b网站推广有哪些