成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Canvas跟隨鼠標炫彩小球的實現(xiàn)

Canvas跟隨鼠標炫彩小球的實現(xiàn)

熱門標簽:江西ai電銷機器人如何 智能語音電銷機器人客戶端 中國地圖標注城市的 地圖標注沿海城市房價 高德地圖標注廁所 地圖標注員工作內(nèi)容 威海語音外呼系統(tǒng)平臺 通遼地圖標注app 西安金倫外呼系統(tǒng)

跟隨鼠標炫彩小球

canvas沒有讓我失望,真的很有意思

實現(xiàn)效果

超級炫酷

實現(xiàn)原理

  • 創(chuàng)建小球
  • 給小球添加隨機顏色,隨機半徑
  • 鼠標移動通過實例化,新增小球
  • 通過調(diào)用給原型新增的方法,來實現(xiàn)小球的動畫效果
  • 通過定時器不斷地更新畫布

實現(xiàn)過程

創(chuàng)建小球

通過創(chuàng)建函數(shù)收納小球所有的樣式,再通過實例化函數(shù),將鼠標當前的位置傳遞給Ball函數(shù),讓通過實例化創(chuàng)建出來的小球,最后將創(chuàng)建出來的小球存入數(shù)組中,數(shù)組中以對象形式存放著每個小球的屬性和屬性值

function Ball(x, y, r) {
    this.x = x;
    this.y = y;
    this.r = r;
    this.color = getRandom();//隨機生成顏色
    this.dx = parseInt(Math.random() * 10) - 5;//生成隨機移動的位置
    this.dy = parseInt(Math.random() * 10) - 5;//`-5`是讓小球能向四周隨機移動
    ballArr.push(this);//添加小球
}
//監(jiān)聽鼠標移動事件
canvas.addEventListener('mousemove', function (e) {
    new Ball(e.offsetX, e.offsetY, parseInt(Math.random() * 20));
    /*實例化Ball為Ball對象通過__proto__來調(diào)用原型的方法*/
})

生成隨機顏色

對于color這個屬性,可以通過6位16進制的值來表示一種顏色

因此,可以通過隨機產(chǎn)生一個6位的16進制數(shù)來做為隨機顏色

0到f這16個數(shù)存入數(shù)組中,通過隨機生成6個0到16的索引值,這樣就能通過數(shù)組的索引號隨機的獲取6個到0到f中的數(shù)了

split的作用是:以括號內(nèi)的參數(shù)為標志符來分割字符串,返回數(shù)組

//設置隨機顏色
function getRandom() {
    var allType = '0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f';//16進制顏色
    var allTypeArr = allType.split(',');//通過','分割為數(shù)組
    var color = '#';
    for (var i = 0; i < 6; i++) {
        //隨機生成一個0-16的數(shù)
        var random = parseInt(Math.random() * allTypeArr.length);
        color += allTypeArr[random];
    }
    return color;//返回隨機生成的顏色
}

渲染小球

給函數(shù)的原型鏈中添加render方法,讓每一個通過Ball函數(shù)實例化出來的對象,帶有這些方法

這個函數(shù)的作用是,通過Ball的參數(shù)生成一個圓形,在實例化的時候,會生成一個對象,這個對象里就存放的x,y,r這些值

Ball.prototype.render = function () {
    ctx.beginPath();//路徑開始
    ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2, false);//畫圓,位置,半徑
    ctx.fillStyle = this.color;//顏色
    ctx.fill();//填充
}

更新小球信息

因為生成的小球x,y,r是固定的,所以小球的位置也是固定的,不會改變

因此需要通過改變每個小球的位置和半徑讓小球動起來,當小球的半徑小于0時,調(diào)用remove方法將小球從數(shù)組中刪除

/* 更新小球位置和半徑 小于0時清除 */
Ball.prototype.update = function () {
    this.x += this.dx;//x改變
    this.y += this.dy;//y改變
    this.r -= 0.1;//半徑減小
    if (this.r < 0) {
        this.remove();//調(diào)用添加的remove方法
    }
}

刪除小球

這是上面調(diào)用的remove方法,當this也就是當前小球半徑小于0時i,遍歷整個數(shù)組,找到這個this,也就是”這個小球“,通過調(diào)用數(shù)組中的方法,刪除掉數(shù)組的這個元素

splice(index,num) 方法可刪除從 index 處開始刪除num個元素

Ball.prototype.remove = function () {
    for (var i = 0; i < ballArr.length; i++) {
        if (ballArr[i] == this) {
            ballArr.splice(i, 1);//找到這個小于0 的元素,刪除
        }
    }
}

渲染畫布

通過定時器,不斷的更新畫布,主要是這幾個步驟

  • 清除畫布
  • 遍歷數(shù)組,獲取到所有小球的信息,渲染到畫布上
  • 不斷的重復調(diào)用,更新小球信息
setInterval(function () {
    ctx.clearRect(0, 0, canvas.width, canvas.height);//清屏
    for (var i = 0; i < ballArr.length; i++) {
        ballArr[i].update();//更新小球
        if (ballArr[i]) {
            ballArr[i].render();//渲染小球
        }
    }
}, 20);

完整代碼

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background: black;
        }
        canvas {
            display: block;
            border: 1px solid black;
            margin: 0 auto;
        }
    </style>
</head>

<body>
    <canvas width="1000px" height="1000px" id="myCanvas">
        當前瀏覽器版本不支持,請升級瀏覽器
    </canvas>
    <script>
        var canvas = document.getElementById('myCanvas');
        var ctx = canvas.getContext('2d');
        //定義球的位置和半徑
        function Ball(x, y, r) {
            this.x = x;
            this.y = y;
            this.r = r;
            this.color = getRandom();//隨機生成顏色
            this.dx = parseInt(Math.random() * 10) - 5;//生成隨機移動的位置
            this.dy = parseInt(Math.random() * 10) - 5;
            ballArr.push(this);//添加小球
        }
        /* 更新小球位置和半徑 小于0時清除 */
        Ball.prototype.update = function () {
            this.x += this.dx;
            this.y += this.dy;
            this.r -= 0.1;
            if (this.r < 0) {
                this.remove();//調(diào)用添加的remove方法
            }
        }
        Ball.prototype.remove = function () {
            for (var i = 0; i < ballArr.length; i++) {
                if (ballArr[i] == this) {
                    ballArr.splice(i, 1);//找到這個小于0 的元素,刪除
                }
            }
        }
        //渲染小球 畫小球
        //在原型中添加方法
        Ball.prototype.render = function () {
            ctx.beginPath();//路徑開始
            ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2, false);//畫圓,位置,半徑
            ctx.fillStyle = this.color;//顏色
            ctx.fill();
        }
        //監(jiān)聽鼠標移動事件
        canvas.addEventListener('mousemove', function (e) {
            new Ball(e.offsetX, e.offsetY, parseInt(Math.random() * 20));
            //實例化Ball為Ball對象通過__proto__來調(diào)用原型的方法
            console.log(ballArr);
        })
        var ballArr = [];
        setInterval(function () {
            ctx.clearRect(0, 0, canvas.width, canvas.height);//清屏
            for (var i = 0; i < ballArr.length; i++) {
                ballArr[i].update();//更新小球
                if (ballArr[i]) {
                    ballArr[i].render();//渲染小球
                }
            }
        }, 20);
        //設置隨機顏色
        function getRandom() {
            var allType = '0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f';//16進制顏色
            var allTypeArr = allType.split(',');//通過','分割為數(shù)組
            var color = '#';
            for (var i = 0; i < 6; i++) {
                var random = parseInt(Math.random() * allTypeArr.length);
                //隨機生成一個0-16的數(shù)
                color += allTypeArr[random];
            }
            return color;//返回隨機生成的顏色
        }
    </script>
</body>

</html>

到此這篇關于Canvas跟隨鼠標炫彩小球的實現(xiàn)的文章就介紹到這了,更多相關Canvas跟隨鼠標 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

標簽:營口 眉山 青海 晉中 北海 河池 崇左 阜陽

巨人網(wǎng)絡通訊聲明:本文標題《Canvas跟隨鼠標炫彩小球的實現(xiàn)》,本文關鍵詞  Canvas,跟隨,鼠標,炫彩,小球,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Canvas跟隨鼠標炫彩小球的實現(xiàn)》相關的同類信息!
  • 本頁收集關于Canvas跟隨鼠標炫彩小球的實現(xiàn)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    av一区二区三区四区| 午夜视频在线观看精品中文| 99爱在线视频| 成人福利免费网站| 欧美日韩中国免费专区在线看| 五月婷婷久久丁香| 精品久久久久久久免费人妻| 欧美午夜寂寞| 欧美sm美女调教| 欧美激情在线看| 国产66精品久久久久999小说| 自产国语精品视频| 亚洲播播91| 91高清在线视频| 亚洲高清视频免费观看| 国产一区二区三区不卡视频网站| 成人午夜激情视频| 亚洲 小说区 图片区 都市| 无圣光视频在线观看| 天堂网在线.www天堂在线视频| 国产脚交av在线一区二区| 在线播放evaelfie极品| 粗暴蹂躏中文一区二区三区| 欧美日韩免费观看一区| 亚洲人午夜射精精品日韩| 不卡av免费在线观看| 日日躁夜夜躁aaaabbbb| 国产原创一区二区三区| 亚洲视频在线不卡| 最新av免费看| 免费91在线观看| 精品国产乱码久久久久久鸭王1| 天天揉久久久久亚洲精品| 欧美性天天影视| 国产乱码在线观看| 三级黄色录像视频| 少妇精品无码一区二区| 偷拍自拍一区| 亚洲专区在线| 日本一区二区三区电影| 4438亚洲最大| 天天色天天射天天综合网| 美女av在线免费看| 污污的网站在线观看| 亚欧美在线观看| 91九色丨porny丨肉丝| 57pao国产一区二区| 精品少妇一二三区| 欧美日韩一区中文字幕| 久久综合偷偷噜噜噜色| 久久久青草青青国产亚洲免观| 超级碰碰视频| 灌醉mj刚成年的大学平面模特| 国产真人做爰视频免费| 亚洲免费av网址| 欧美一区二区高清| 国产精品美女一区二区视频| 天堂影院在线| 亚洲无线一线二线三线区别av| 《视频一区视频二区| 中文字幕亚洲乱码| 艳妇乳肉豪妇荡乳av无码福利| 天堂在线第六区| 人人玩人人添人人澡免费| 国产欧美日本亚洲精品一4区| 美美哒免费高清在线观看视频一区二区| 一区二区三区欧美在线观看| 国产99精品视频| 久久只有这里有精品| 一区二区冒白浆视频| 中文字幕2019第三页| 韩国三级av在线免费观看| 天天看天天操| 青青青草网站免费视频在线观看| 日韩精品一区二区av| 一区二区在线观看视频| 麻豆av观看| 99久久婷婷国产精品综合| 美女视频久久| 国产aⅴ激情无码久久久无码| www.视频一区| 青青操免费在线视频| 日韩一级片在线免费观看| 亚洲精品一区二区久| 国产精品久久久久白浆| 午夜精品久久久久久久99热浪潮| 国产精品每日更新在线播放网址| 国产麻豆精品久久| 久久综合影院| 国产欧美日韩视频在线| 91国产丝袜在线播放| 久久精品magnetxturnbtih| 91免费在线| 亚洲少妇中文字幕| 欧美一区二区三区艳史| 欧美极品视频| 亚洲三级电影在线观看| 国产精品4hu.www| 在线观看视频二区| 哺乳一区二区三区中文视频| 欧美小视频在线观看| 久久er99热精品一区二区三区| 欧美日韩国产精品成人| 天天摸日日摸狠狠添| 国产一区二区三区高清视频| 国产精品试看| 国产探花一区二区三区| 欧美日本视频一区| 国产人妻大战黑人20p| 日精品一区二区| 欧美美女一区二区在线观看| 最近中文字幕免费| 欧美性猛交99久久久久99| 亚洲久久一区| 国产一区二区三区高清播放| 亚洲伦理在线| 国产精品成人av| 国产尤物久久久| 搞黄网站在线看| 亚洲va欧美va国产综合久久| 成人爱爱电影网址| 最新精品国产| 久久久噜久噜久久综合| 免费毛片aaaaaa| 亚洲三级在线视频| 99视频有精品高清视频| 中文天堂在线视频| 亚州精品永久观看视频| 人妻熟妇乱又伦精品视频| av一区二区三区四区电影| 四虎在线视频免费观看| 蜜臀av国内免费精品久久久夜夜| 色成人免费网站| 三级在线观看视频| 国产精品影视天天线| 久久99精品久久久久久青青91| 精品无人区一区二区| 亚洲午夜影视影院在线观看| 天天综合精品| 中文字幕三级电影| 免费又黄又爽又色的视频| 久久伊人久久| 牛牛影视一区二区三区免费看| 麻豆国产精品| 国内精品卡一卡二卡三新区| 欧美专区第二页| 伊人免费视频| 午夜精彩国产免费不卡不顿大片| 豆花视频一区| 天天做日日爱夜夜爽| 香蕉视频一区二区三区| 亚洲精品第一国产综合野| 久久国产精品无码一级毛片| 国产一区二区三区四区五区入口| 性欧美长视频免费观看不卡| 欧美一级淫片免费视频| 少妇人妻丰满做爰xxx| 国产黄色在线免费观看| 麻豆一区二区三区在线观看| 精品日本一线二线三线不卡| 亚洲欧美偷拍另类a∨色屁股| 国产资源一区| 天天夜夜人人| 国产女18毛片多18精品| 国产精品一区二区三| 97成人资源| 特黄特色特刺激视频免费播放| 欧美一区二区三区不卡视频| 黄色a一级视频| 亚洲免费av电影| 亚洲欧美在线看| 激情六月丁香| 欧美成年黄网站色视频| 免费在线观看成人| 国产欧美久久久久| 欧美韩国理论所午夜片917电影| 久久一级电影| 成人免费短视频| 91精品国偷自产在线电影| 欧美性久久久久| 亚洲网站啪啪| 女女互磨互喷水高潮les呻吟| а√天堂中文在线资源8| 亚洲国产成人av在线| 精品三级久久久久久久电影聊斋| 国产精品久久久久久久久粉嫩av| 亚洲人成精品久久久久| 中文久久精品| 国产亚洲精品码| 欧美成人高潮一二区在线看| 日韩欧洲国产| 久久视频在线免费观看| av毛片久久久久**hd| 亚洲剧情一区二区| 国产亚洲精品av| 国产高清999| 美女激情福利视频在线观看| 91国产精品91| 激情综合视频| 最近中文字幕在线6| 欧美xx在线| 亚洲污视频在线观看| 久久久久久久久久久一区| 不要播放器的av网站| 一级黄色香蕉视频| 国产片高清在线观看| 黄色av一区二区| av在线一区二区三区| 深夜宅男网站免费进入| 尤物yw午夜国产精品视频明星| 日本久久久久| 欧美+日本+国产+在线a∨观看| 91精品视频国产| 99青草视频在线播放视| 啪啪免费网站| 亚洲欧美日韩国产手机在线| 精品美女久久久久| 国产在线精品免费| 日韩视频三区| 色老头久久综合| 亚洲精品一区二区三区新线路| 国产精品第5页| 久久一留热品黄| 九九视频在线免费观看| 精品国产av鲁一鲁一区| 免播放器亚洲| 最近2019年中文视频免费在线观看| 日韩一级片网址| 日本免费不卡视频| 日本一道高清一区二区三区| 日韩午夜在线观看视频| 国产精品欧美色图| 国产精品女同一区二区| 一区二区三区在线免费观看视频| 亚洲一区在线直播| www.99色.com| 香蕉视频在线观看www| 国产91久久久| 亚洲欧美在线视频免费| 国产东北露脸精品视频| 无遮挡h肉3d动漫在线观看| 波多野结衣视频在线观看| 熟女av一区二区| 亚洲欧洲闷骚av少妇影院| 国产馆手机在线观看| 日韩黄色三级在线观看| 一级全黄裸体免费视频| av网站免费在线看| 黄色视屏网站在线免费观看| 青青操夜夜操| 亚州精品国产精品乱码不99按摩| 国产精品情趣视频| 成人免费在线一区二区三区| 黄色a一级视频| 中文字幕中文字幕在线中一区高清| 成人精品一区二区三区四区| 亚洲欧洲激情在线| 狠狠色综合一区二区| 三级av网站| 午夜精品久久99蜜桃的功能介绍| 洋洋av久久久久久久一区| 国产传媒视频在线| 苍井空张开腿实干12次| 欧美性三三影院| 欧美视频xxx| 一区二区三区四区在线视频| 亚洲日本欧美日韩高观看| 91精品国产自产在线丝袜啪| 国产伦精品一区二区三区在线| 久久久国产精品午夜一区ai换脸| av噜噜在线观看| 国产精品第八页| 麻豆视频在线免费观看| 超碰在线94| 在线看三级网站视频| 久久久国产一区二区三区四区小说| 国产日韩中文字幕| 九色porny丨首页在线| 成人狠狠色综合| 亚洲一区制服诱惑| 一区二区不卡视频在线观看| 日本一区二区三区中文字幕| 三级在线观看免费大全| 国产乱码精品一区二区三区中文| 国产免费的av| 草草在线观看| 国产欧美一区二区三区在线老狼| 欧日韩一区二区三区| 亚洲国产日韩在线观看| 欧美精品在欧美一区二区少妇| 精品性高朝久久久久久久| 国产91丝袜在线观看| 欧美成人四级hd版| japanese在线视频| 内射无码专区久久亚洲| 欧美剧情片在线观看| 国产chinese中国hdxxxx| 一级做a爰片久久毛片| 精品欧美一区二区三区| 中国特级黄色片| 黄色漫画在线免费观看| 欧美三级三级| 亚洲欧美www| 欧美大交乱xxxxbbbb| 手机福利在线视频| 国产69精品久久久久9999小说| 久久久久久av无码免费网站下载| 精品国产一区二区三区免费| 欧美v国产在线一区二区三区| 欧美日韩看看2015永久免费| 久久国产精品免费一区| 久久久久久久极品内射| 夜夜爽99久久国产综合精品女不卡| 黄色毛片在线| 日韩精品专区在线影院观看| 久久免费视频精品| 亚洲无在线观看| 欧美在线视频观看免费网站| 亚洲国产综合一区| 人善交vide欧美| 热国产热中文视频二区| 国产一区二区三区香蕉| 亚洲日韩中文字幕在线播放| 亚洲免费中文| 伊人色综合久久天天人手人婷| 爱久久·www| 屁屁影院ccyy国产第一页| 久久久久久久电影一区|