欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于canvas實現(xiàn)超炫酷的流水燈效果

 更新時間:2021年05月20日 14:45:55   作者:sensus森森  
這篇文章主要為大家詳細介紹了基于canvas實現(xiàn)超炫酷的流水燈效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了基于canvas實現(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標簽,并加上紅色邊框以便于在頁面上查看 -->  
        <canvas id="myCanvas" >  
        您的瀏覽器不支持canvas標簽。   
        </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(); //開始一個新的繪制路徑
        ctx.moveTo(x, y); //定義直線的起點坐標為(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è)置線段的寬度
            ctx.stroke(); //沿著坐標點順序的路徑繪制直線
        }, 1);
    }) 
</script>  
</body>  
</html>  

效果截圖:

流水燈時刻跑著,這里主要是繞圈圈

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • Webpack中l(wèi)oader打包各種文件的方法實例

    Webpack中l(wèi)oader打包各種文件的方法實例

    這篇文章主要給大家介紹了關(guān)于Webpack中l(wèi)oader打包各種文件的相關(guān)資料,其中包括處理css文件、less文件、scss文件、url地址以及ES6高級語法的方法,需要的朋友可以參考下
    2019-09-09
  • js、jquery圖片動畫、動態(tài)切換示例代碼

    js、jquery圖片動畫、動態(tài)切換示例代碼

    這篇文章主要介紹了通過js、jquery實現(xiàn)的圖片動畫、圖片動態(tài)切換 ,需要的朋友可以參考下
    2014-06-06
  • 重學JS之顯示強制類型轉(zhuǎn)換詳解

    重學JS之顯示強制類型轉(zhuǎn)換詳解

    這篇文章主要給大家介紹了關(guān)于重學JS之顯示強制類型轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JS具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • JavaScript列表框listbox全選和反選的實現(xiàn)方法

    JavaScript列表框listbox全選和反選的實現(xiàn)方法

    這篇文章主要介紹了JavaScript列表框listbox全選和反選的實現(xiàn)方法,涉及javascript操作列表框listbox的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • 理解Javascript_01_理解內(nèi)存分配原理分析

    理解Javascript_01_理解內(nèi)存分配原理分析

    在正式開始之前,我想先說兩句,理解javascript系列博文是通過帶領(lǐng)大家分析javascript執(zhí)行時的內(nèi)存分配情況,來解釋javascript原理,具體會涵蓋javascript預加載,閉包原理,面象對象,執(zhí)行模型,對象模型...,文章的視角很特別,也非常深入,希望大家能接受這種形式,并提供寶貴意見。
    2010-10-10
  • 基于Bootstrap分頁的實例講解(必看篇)

    基于Bootstrap分頁的實例講解(必看篇)

    下面小編就為大家?guī)硪黄贐ootstrap分頁的實例講解(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 全面了解addEventListener和on的區(qū)別

    全面了解addEventListener和on的區(qū)別

    下面小編就為大家?guī)硪黄媪私鈇ddEventListener和on的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • BootStrapTable服務器分頁實例解析

    BootStrapTable服務器分頁實例解析

    項目中經(jīng)常會使用到表格,數(shù)據(jù)量大的時候還需要進行分頁,項目設(shè)計階段,我選擇了bootstrapTable的js插件,個人覺得這個框架非常好用,支持服務器端分頁,此篇主要寫的主要是關(guān)于服務器分頁,需要的朋友可以參考下
    2016-12-12
  • 微信中一些常用的js方法匯總

    微信中一些常用的js方法匯總

    本文給大家匯總了一下在我們?nèi)粘i_發(fā)微信項目的過程中,經(jīng)常需要用到的一些js方法,都是些使用頻率很高,而且非常簡單的方法,這里推薦給大家。
    2015-03-03
  • ES6新特性五:Set與Map的數(shù)據(jù)結(jié)構(gòu)實例分析

    ES6新特性五:Set與Map的數(shù)據(jù)結(jié)構(gòu)實例分析

    這篇文章主要介紹了ES6新特性五之Set與Map的數(shù)據(jù)結(jié)構(gòu),結(jié)合實例形式分析了ES6中Set與Map的功能、定義、屬性、結(jié)構(gòu)與相關(guān)使用技巧,需要的朋友可以參考下
    2017-04-04

最新評論