直播平臺搭建原始碼,canvas 畫一條波浪線 進度條
直播平臺搭建原始碼,canvas 畫一條波浪線 進度條
<template> <view> <canvas :style="{'width': width + 'rpx','height': height + 'rpx','backgroundColor': '#d2d8d2'}" canvas-id="firstCanvas" id="firstCanvas"></canvas> </view> </template> <script> export default { data() { return { ctx: null, width: 600, height: 400, step: 2, stepHeight: -60, trigger: true } }, mounted() { this.ctx = uni.createCanvasContext('firstCanvas', this) //this.drawWave() //this.drawWave() this.moveWave() }, computed: { canvasWidth() { return uni.upx2px(this.width) }, canvasHeight() { return uni.upx2px(this.height) }, stepWave() { return uni.upx2px(this.canvasWidth) / this.step }, stepWaveHeight() { return uni.upx2px(this.stepHeight) }, canvasCenter() { return { x: this.canvasWidth / 2, y: this.canvasHeight / 2 } } }, methods: { //計算位移 波浪高度的值 moveWave() { let offset = -this.stepWave * 2 setInterval(() => { offset++ if (offset >= 0) { offset = -this.stepWave * 2 } if (this.stepHeight > -10) { this.trigger = true } if (this.stepHeight < -50) { this.trigger = false } if (this.trigger) { this.stepHeight -= 0.2 } else { this.stepHeight += 0.2 } this.drawWave(offset) }, 10) }, drawWave(offset) { // 遮罩開始 this.ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight); this.ctx.save(); this.ctx.beginPath(); this.ctx.fillStyle = '#d5ffc5' this.ctx.arc(this.canvasCenter.x, this.canvasCenter.y, 100, 0, Math.PI * 2, false); this.ctx.closePath(); this.ctx.fill(); // this.ctx.setStrokeStyle("#d5ffc5") // this.ctx.stroke(); this.ctx.clip(); //this.ctx.restore() // 遮罩結束 this.ctx.beginPath() //線條起點 this.ctx.moveTo(0 + offset, this.canvasCenter.y); //寬高 // this.ctx.setStrokeStyle("#002ae6") //顏色 this.ctx.setLineWidth(1) for (let i = 0; i < this.step * 3; i++) { if (i % 2 == 0) { this.ctx.quadraticCurveTo(this.stepWave * (i) + this.stepWave / 2 + offset, this.canvasCenter.y + this .stepWaveHeight, this.stepWave * (i + 1) + offset, this.canvasCenter.y) } else { this.ctx.quadraticCurveTo(this.stepWave * (i) + this.stepWave / 2 + offset, this.canvasCenter.y - this .stepWaveHeight, this.stepWave * (i + 1) + offset, this.canvasCenter.y) } } this.ctx.lineTo(this.stepWave * (this.step * 2 + 3) + offset, this.canvasHeight) this.ctx.lineTo(0 + offset, this.canvasHeight) this.ctx.closePath() let grad = this.ctx.createLinearGradient(0, 0, 0, this.canvasHeight); grad.addColorStop(0, '#1e92ea') grad.addColorStop(1, '#2C405A') // this.ctx.setFillStyle('#3cee06') this.ctx.setFillStyle(grad) this.ctx.fill() this.ctx.restore(); //this.ctx.strokeStyle = "red" //this.ctx.stroke() this.ctx.draw() }, } } </script> <style scoped> .canvas-view {} </style>
以上就是 直播平臺搭建原始碼,canvas 畫一條波浪線 進度條,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2938063/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播平臺搭建原始碼,uniapp progress進度條原始碼APP
- 成品直播原始碼推薦,Flutter波浪進度條WaveProgressBar原始碼Flutter
- canvas 畫進度條Canvas
- 直播平臺搭建原始碼,Android進度條ProgressBar顏色的漸變設定原始碼Android
- 直播帶貨平臺原始碼,利用ProgressBar實現垂直、水平進度條原始碼
- 直播平臺原始碼,通知欄中顯示滑動的進度條原始碼
- 直播平臺製作,使用 NProgress 進度條
- app直播原始碼,edusoho直播回放增加進度條APP原始碼
- 【UWP】實現一個波浪進度條
- Flutter 波浪圓形進度條Flutter
- 直播商城系統原始碼,環形進度條元件原始碼元件
- 直播電商平臺開發,環形進度條元件元件
- 直播平臺軟體開發,讓原本沒有進度條的頁面顯示進度條
- 直播網站原始碼,Canvas實現圓形時間倒數計時進度條網站原始碼Canvas
- 直播app開發搭建,js進度條功能APPJS
- canvas環形進度條效果Canvas
- 直播商城原始碼,去掉導航條和tabbar線條原始碼tabBar
- Vue canvas繪製圓形進度條動畫載入VueCanvas動畫
- 短視訊平臺搭建,Android自定義旋轉進度條Android
- 影片直播app原始碼,去掉導航條和tabbar線條APP原始碼tabBar
- 直播app系統原始碼,固定速度的進度條顯示APP原始碼
- 直播app系統原始碼,簡單易上手的進度條APP原始碼
- canvas錐形漸變進度條Canvas
- 成品直播原始碼推薦,去掉導航條和tabbar線條原始碼tabBar
- 直播平臺製作,Glide載入網路圖,進度條顯示IDE
- PHP直播平臺原始碼搭建教程PHP原始碼
- 【新特性速遞】進度條,進度條,進度條
- 使用canvas繪製圓形進度條Canvas
- canvas百分比環形進度條程式碼Canvas
- 直播原始碼網站,各類進度條的設定與調整原始碼網站
- 直播原始碼如何搭建一個屬於自己的直播平臺?原始碼
- 現代 CSS 高階技巧,完美的波浪進度條效果!CSS
- canvas 繪製線條Canvas
- app直播原始碼,實現進度條自增長及漸變樣式APP原始碼
- 快速運營搭建直播軟體平臺直播原始碼!原始碼
- 一對一聊天原始碼,vue實現環形進度條元件原始碼Vue元件
- 直播平臺搭建原始碼,java相簿製作原始碼Java
- Android教你一步一步從學習貝塞爾曲線到實現波浪進度條Android