国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

vue+canvas繪制時間軸的方法

瀏覽:5日期:2023-02-15 10:23:01

本文實例為大家分享了vue canvas繪制時間軸的具體代碼,供大家參考,具體內(nèi)容如下

最近在研究canvas繪制時間軸,直接上代碼,希望分享能給大家?guī)韼椭Ч缦拢?/p>

vue+canvas繪制時間軸的方法

代碼如下,可以拷貝到vue項目中直接預(yù)覽

<template> <div> <canvas height='27'></canvas> </div></template><script>export default { name: ’pathwaytrack’, data() { return { screenWidth: document.body.clientWidth } }, mounted() { let that = this that.carveTimeScale(1200, 1, 10, 0, 10) let canvasColor = ’#999999’ let initTime = 12000 setInterval(() => { initTime += 1000 that.carveTimeScale(1200, 1, 10, initTime, 10) }, 1000); }, methods: { /** * 分割像素刻度 * width: 寬度 ms:一個小刻度的毫秒數(shù) pxMs:10像素一個小刻度 pageShowStartTime:初始時間(毫秒) 一大段間隔時長(秒) */ carveTimeScale(width, ms, pxMs, pageShowStartTime, intervalTime) { let canvasId = document.getElementById(’time_line’) let ctx = canvasId.getContext(’2d’) ctx.clearRect(0, 0, 1200, 60) ctx.fillStyle = ’#999999’ // 為防止蘋果屏幕2X顯示不正常 // 為防止蘋果屏幕2X顯示不正常 var getPixelRatio = function (context) {var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1return (window.devicePixelRatio || 1) / backingStore } let ratio = getPixelRatio(ctx) let msOffset = this.startOffsetTime(pageShowStartTime, ms) // 開始的偏移時間 ms let pxOffset = msOffset / 1000 * pxMs // 開始的偏移距離 px let leftDistance = 0 // 到左側(cè)的距離 let leftDistanceTime = 0 // 到左側(cè)的時間 let beginX = 0 let beginY = 0 for (let i = 0; i < width / (ms * pxMs); i++) {leftDistance = pxOffset + i * (ms * pxMs) // 距離 = 開始的偏移距離 + 格數(shù) * px/格leftDistanceTime = pageShowStartTime + msOffset + i * ms // 時間 = 左側(cè)開始時間 + 偏移時間 + 格數(shù) * msbeginX = pxOffset + i * (ms * pxMs)let canvasColorlet showTime = pageShowStartTime + beginX / pxMs * 1000if (showTime % (intervalTime * 1000) === 0) { beginY = 0 ctx.font = ’12px Arial’ ctx.fillText(this.changeTime(showTime, 1), beginX + 10, 22) canvasColor = ’#999999’ ctx.fillStyle = ’#B1B1B1’ this.drawLine(leftDistance, beginY, leftDistance, 20, canvasColor, 1)} else if (showTime % intervalTime == 0) { beginY = 0 canvasColor = ’#999999’ this.drawLine(leftDistance, beginY, leftDistance, 10, canvasColor, 1)} } }, /** * 根據(jù)傳入?yún)?shù)畫線 */ drawLine(beginX, beginY, endX, endY, color, width) { let canvasId = document.getElementById(’time_line’); let ctx = canvasId.getContext(’2d’); ctx.beginPath(); ctx.moveTo(beginX, beginY); ctx.lineTo(endX, endY); ctx.strokeStyle = color; ctx.lineWidth = width; ctx.stroke(); }, /** * 左側(cè)開始時間的偏移,返回單位ms */ startOffsetTime(timestamp, step) { let remainder = timestamp % step return remainder ? step - remainder : 0 }, /** * 返回時間 */ changeTime(time, num) { let hour = 0 let minute = 0 let second = 0 second = time / 1000 if (second >= 3600) {minute = (second - (second % 60)) / 60hour = parseInt((minute / 60).toString())minute = minute % 60/* eslint-disable */hour >= 10 ? hour : hour = ’0’ + hourminute >= 10 ? minute : minute = ’0’ + minutesecond = second % 60second >= 10 ? second : second = ’0’ + second/* eslint-enable */return hour + ’:’ + minute + ’:’ + second } if (second < 3600 && second >= 60) {hour = ’00’minute = parseInt((second / 60).toString())/* eslint-disable */minute >= 10 ? minute : minute = ’0’ + minutesecond = second % 60second >= 10 ? second : second = ’0’ + second/* eslint-enable */return hour + ’:’ + minute + ’:’ + second } if (second < 60) {hour = ’00’minute = ’00’second = parseInt(second)/* eslint-disable */second >= 10 ? second : second = ’0’ + second/* eslint-enable */return hour + ’:’ + minute + ’:’ + second } } }}</script><style lang='less' scoped> canvas { background: black; }</style>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 91久久精品国产91久久性色tv | 看一级特黄a大片国产 | 久久毛片免费看一区二区三区 | 亚洲精品成人一区二区aⅴ 亚洲精品成人一区二区www | 久99久精品视频免费观看v | 在线观看欧洲成人免费视频 | 久久久久久久久免费影院 | 毛片久久 | 国产精品九九九久久九九 | 91亚洲精品 | 欧洲一级毛片免费 | 欧美巨大另类极品videohd | 老司机久久影院 | 欧美一区综合 | 黄色片日本人 | 亚洲精品一区二区在线观看 | 国产成人精品视频频 | 加勒比一本大道香蕉在线视频 | 亚洲综合网在线观看 | 日韩精品欧美激情国产一区 | 亚洲精品久久99久久一区 | 国产精品毛片在线更新 | 久久综合久久美利坚合众国 | 99综合在线 | 日韩中文字幕在线观看 | 国产一区三区二区中文在线 | 毛片免费全部播放一级 | 亚洲美女综合 | 亚洲国产福利精品一区二区 | 免费看a级片 | 亚洲成人第一 | 亚洲成a人片在线观看中 | 92看片淫黄大片看国产片 | 人人公开免费超级碰碰碰视频 | 各种偷拍盗摄视频在线观看 | 久久久久9999 | 91精品久久一区二区三区 | 久久精品国产免费高清 | 精品国产看高清国产毛片 | 欧美日韩在线永久免费播放 | 一区二区三区免费视频观看 |