基于canvas實(shí)現(xiàn)超炫酷的流水燈效果
本文實(shí)例為大家分享了基于canvas實(shí)現(xiàn)超炫酷的流水燈效果的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>基于canvas超炫酷的流水燈效果</title> <style> *{ margin: 0; padding: 0; } canvas{ border: 1px solid red; width: 100%; height: 100%; } </style> </head> <body onselectstart="return false"> <!-- 添加canvas標(biāo)簽,并加上紅色邊框以便于在頁(yè)面上查看 --> <canvas id="myCanvas" > 您的瀏覽器不支持canvas標(biāo)簽。 </canvas> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script type="text/javascript"> var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); var cx1 = canvas.offsetLeft; var cy1 = canvas.offsetTop; var cx2 = canvas.offsetLeft + canvas.offsetWidth; var cy2 = canvas.offsetTop + canvas.offsetHeight; var bbox = canvas.getBoundingClientRect(); $(function(){ var direction = 'right',x = y = right_count = down_count = left_count = up_count = 0; ctx.beginPath(); //開(kāi)始一個(gè)新的繪制路徑 ctx.moveTo(x, y); //定義直線(xiàn)的起點(diǎn)坐標(biāo)為(0,0) setInterval(function(){ ctx.strokeStyle = '#'+Math.floor(Math.random()*16777215).toString(16); switch(direction){ case 'right': if(x >= 300 - right_count){ direction = 'down'; right_count++; }else{ x++; } break; case 'down': if(y >= 150 - down_count){ direction = 'left'; down_count++; }else{ y++; } break; case 'left': if(x <= left_count){ direction = 'up'; left_count++; }else{ x--; } break; case 'up': if(y <= up_count + 1){ direction = 'right'; up_count++; }else{ y--; } break; } ctx.lineTo(x, y); ctx.lineCap = 'round'; ctx.lineWidth = 1; //設(shè)置線(xiàn)段的寬度 ctx.stroke(); //沿著坐標(biāo)點(diǎn)順序的路徑繪制直線(xiàn) }, 1); }) </script> </body> </html>
效果截圖:
流水燈時(shí)刻跑著,這里主要是繞圈圈
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Webpack中l(wèi)oader打包各種文件的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Webpack中l(wèi)oader打包各種文件的相關(guān)資料,其中包括處理css文件、less文件、scss文件、url地址以及ES6高級(jí)語(yǔ)法的方法,需要的朋友可以參考下2019-09-09js、jquery圖片動(dòng)畫(huà)、動(dòng)態(tài)切換示例代碼
這篇文章主要介紹了通過(guò)js、jquery實(shí)現(xiàn)的圖片動(dòng)畫(huà)、圖片動(dòng)態(tài)切換 ,需要的朋友可以參考下2014-06-06重學(xué)JS之顯示強(qiáng)制類(lèi)型轉(zhuǎn)換詳解
這篇文章主要給大家介紹了關(guān)于重學(xué)JS之顯示強(qiáng)制類(lèi)型轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06JavaScript列表框listbox全選和反選的實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript列表框listbox全選和反選的實(shí)現(xiàn)方法,涉及javascript操作列表框listbox的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03理解Javascript_01_理解內(nèi)存分配原理分析
在正式開(kāi)始之前,我想先說(shuō)兩句,理解javascript系列博文是通過(guò)帶領(lǐng)大家分析javascript執(zhí)行時(shí)的內(nèi)存分配情況,來(lái)解釋javascript原理,具體會(huì)涵蓋javascript預(yù)加載,閉包原理,面象對(duì)象,執(zhí)行模型,對(duì)象模型...,文章的視角很特別,也非常深入,希望大家能接受這種形式,并提供寶貴意見(jiàn)。2010-10-10基于Bootstrap分頁(yè)的實(shí)例講解(必看篇)
下面小編就為大家?guī)?lái)一篇基于Bootstrap分頁(yè)的實(shí)例講解(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07全面了解addEventListener和on的區(qū)別
下面小編就為大家?guī)?lái)一篇全面了解addEventListener和on的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07BootStrapTable服務(wù)器分頁(yè)實(shí)例解析
項(xiàng)目中經(jīng)常會(huì)使用到表格,數(shù)據(jù)量大的時(shí)候還需要進(jìn)行分頁(yè),項(xiàng)目設(shè)計(jì)階段,我選擇了bootstrapTable的js插件,個(gè)人覺(jué)得這個(gè)框架非常好用,支持服務(wù)器端分頁(yè),此篇主要寫(xiě)的主要是關(guān)于服務(wù)器分頁(yè),需要的朋友可以參考下2016-12-12ES6新特性五:Set與Map的數(shù)據(jù)結(jié)構(gòu)實(shí)例分析
這篇文章主要介紹了ES6新特性五之Set與Map的數(shù)據(jù)結(jié)構(gòu),結(jié)合實(shí)例形式分析了ES6中Set與Map的功能、定義、屬性、結(jié)構(gòu)與相關(guān)使用技巧,需要的朋友可以參考下2017-04-04