午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 解析html5 canvas實現背景鼠標連線動態效果代碼

解析html5 canvas實現背景鼠標連線動態效果代碼

熱門標簽:電話機器人技術 欣鼎電銷機器人 效果 如何查看地圖標注 ok電銷機器人 智能電銷機器人被禁用了么 惡搞電話機器人 高德地圖標注商戶怎么標 黃石ai電銷機器人呼叫中心 地圖標注軟件打印出來

流行的動態背景連線特效。下面的代碼是作者在扒下來的代碼上進行整理和注釋,很適應參考學習。

效果截圖:

效果演示:https://jc1144096387.github.io/canvas_nest/

作者地址:https://blog.csdn.net/u013556477/article/details/82819785

HTML代碼(測試代碼):

<!doctype html>
<html lang="en">    
<head>
 <meta charset="UTF-8">
 <meta name="Generator" content="EditPlus®">
 <meta name="Author" content="">
 <meta name="Keywords" content="">
 <meta name="Description" content="">
 <title>canvas場景連線特效</title>
 <style type="text/css">*{ margin: 0px; padding: 0px; } body{ background-color: #f4f4f4; }</style></head>

<body>
 <!-- <canvas id="c_n9" width="1366" height="403" style="position: fixed; top: 0px; left: 0px; z-index: -1; opacity: 0.5;"></canvas> -->
 <script type="text/javascript" src="test-clear.js" opacity=0 .6></script>
</body>
</html>

Javascript代碼:

//立即執行函數
//!的作用是告訴javascript引擎這是一個函數表達式,不是函數聲明,()、!、+、-等運算符都能實現這個作用,不過()是最安全的
//在!function(){}后面加上()會立即調用這個函數
//這樣做可以模仿一個私有作用域,這樣html文件引用多個js文件時便不會造成變量沖突
!
function() {
    //canvas元素相關
    //創建canvas元素,并設置canvas元素的id
    var canvas = document.createElement("canvas"),
    context = canvas.getContext("2d"),
    attr = getAttr();
    //設置創建的canvas的相關屬性
    canvas.id = "c_n" + attr.length;
    canvas.style.cssText = "position:fixed;top:0;left:0;z-index:" + attr.z + ";opacity:" + attr.opacity;
    //將canvas元素添加到body元素中
    document.getElementsByTagName("body")[0].appendChild(canvas);
    //該函數設置了canvas元素的width屬性和height屬性
    getWindowWH();
    //onresize 事件會在窗口或框架被調整大小時發生
    //此處即為當窗口大小改變時,重新獲取窗口的寬高和設置canvas元素的寬高
    window.onresize = getWindowWH;
    //該函數會得到引用了本文件的script元素,
    //因為本文件中在賦值時執行了一次getScript函數,html文件引用本文件時,本文件之后的script標簽還沒有被瀏覽器解釋,
    //所以得到的script數組中,引用了本文的script元素在該數組的末尾
    //該函數的用意為使開發者能直接修改在html中引入該文件的script元素的屬性來修改畫布的一些屬性,畫布的z-index,透明度和小方塊數量,顏色
    //與前面往body元素添加canvas元素的代碼配合,當開發者想要使用該特效作為背景時,只需在html文件中添加script元素并引用本文件即可
    function getAttr() {
        let scripts = document.getElementsByTagName("script"),
        len = scripts.length,
        script = scripts[len - 1]; //v為最后一個script元素,即引用了本文件的script元素
        return {
            length: len,
            z: script.getAttribute("zIndex") || -1,
            opacity: script.getAttribute("opacity") || 0.5,
            color: script.getAttribute("color") || "0,0,0",
            count: script.getAttribute("count") || 99
        }
    }
    //獲得窗口寬高,并設置canvas元素寬高
    function getWindowWH() {
        W = canvas.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
        H = canvas.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
    }
    //生成隨機位置的小方塊
    var random = Math.random,
    squares = []; //存放小方塊
    //往squares[]數組放小方塊
    for (let p = 0; p < attr.count; p++) {
        var square_x = random() * W,
        //橫坐標
        square_y = random() * H,
        //縱坐標
        square_xa = 2 * random() - 1,
        //x軸位移 -1,1
        square_ya = 2 * random() - 1; //y軸位移
        squares.push({
            x: square_x,
            y: square_y,
            xa: square_xa,
            ya: square_ya,
            max: 6000
        })
    }
    //生成鼠標小方塊
    var mouse = {
        x: null,
        y: null,
        max: 20000
    };
    //獲取鼠標所在坐標
    window.onmousemove = function(i) {
        //i為W3C DOM,window.event 為 IE DOM,以實現兼容IE
        //不過目前似乎IE已經支持W3C DOM,我用的是IE11,我注釋掉下一句代碼也能實現鼠標交互效果,
        //網上說7/8/9是不支持的,本人沒有試驗,
        //當然加上是沒有錯的
        i = i || window.event;
        mouse.x = i.clientX;
        mouse.y = i.clientY;
    }
    //鼠標移出窗口后,消除鼠標小方塊
    window.onmouseout = function() {
        mouse.x = null;
        mouse.y = null;
    }
    //繪制小方塊,小方塊移動(碰到邊界反向移動),小方塊受鼠標束縛
    var animation = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||
    function(i) {
        window.setTimeout(i, 1000 / 45)
    }; //各個瀏覽器支持的requestAnimationFrame有所不同,兼容各個瀏覽器
    function draw() {
        //清除畫布
        context.clearRect(0, 0, W, H);
        var w = [mouse].concat(squares); //連接(合并)鼠標小方塊數組和其他小方塊數組
        var x, v, A, B, z, y;
        //square屬性表:x,y,xa,ya,max
        squares.forEach(function(i) {
            //實現小方塊定向移動
            i.x += i.xa;
            i.y += i.ya;
            // 控制小方塊移動方向
            // 當小方塊達到窗口邊界時,反向移動
            i.xa = i.xa * (i.x > W || i.x < 0 ? -1 : 1);
            i.ya = i.ya * (i.y > H || i.y < 0 ? -1 : 1);
            //fillRect前兩個參數為矩形左上角的x,y坐標,后兩個分別為寬度和高度
            //繪制小方塊
            context.fillRect(i.x - 0.5, i.y - 0.5, 1, 1);
            //遍歷w中所有元素
            for (let n = 0; n < w.length; n++) {
                x = w[n];
                //如果x與i不是同一個對象實例且x的xy坐標存在
                if (i !== x && null !== x.x && null !== x.y) {
                    x_diff = i.x - x.x; //i和x的x坐標差
                    y_diff = i.y - x.y; //i和x的y坐標差
                    distance = x_diff * x_diff + y_diff * y_diff; //斜邊平方
                    if (distance < x.max) {
                        //使i小方塊受鼠標小方塊束縛,即如果i小方塊與鼠標小方塊距離過大,i小方塊會被鼠標小方塊束縛,
                        //造成 多個小方塊以鼠標為圓心,mouse.max/2為半徑繞成一圈
                        if (x === mouse && distance > x.max / 2) {
                            i.x = i.x - 0.03 * x_diff;
                            i.y = i.y - 0.03 * y_diff;
                        }
                        A = (x.max - distance) / x.max;
                        context.beginPath();
                        //設置畫筆的畫線的粗細與兩個小方塊的距離相關,范圍0-0.5,兩個小方塊距離越遠畫線越細,達到max時畫線消失
                        context.lineWidth = A / 2;
                        //設置畫筆的畫線顏色為s.c即畫布顏色,透明度為(A+0.2)即兩個小方塊距離越遠畫線越淡
                        context.strokeStyle = "rgba(" + attr.color + "," + (A + 0.2) + ")";
                        //設置畫筆的筆觸為i小方塊
                        context.moveTo(i.x, i.y);
                        //使畫筆的筆觸移動到x小方塊
                        context.lineTo(x.x, x.y);
                        //完成畫線的繪制,即繪制連接小方塊的線
                        context.stroke();
                    }
                }
            }
            //把i小方塊從w數組中去掉
            //防止兩個小方塊重復連線
            w.splice(w.indexOf(i), 1);
        });
        //window.requestAnimationFrame與setTimeout相似,形成遞歸調用,
        //不過window.requestAnimationFrame采用系統時間間隔,保持最佳繪制效率,提供了更好地優化,使動畫更流暢
        //經過瀏覽器優化,動畫更流暢;
        //窗口沒激活時,動畫將停止,省計算資源;
        animation(draw);
    }
    //此處是等待0.1秒后,執行一次draw(),真正的動畫效果是用window.requestAnimationFrame實現的
    setTimeout(function() {
        draw();
    },
    100)
} ();

源碼地址: https://github.com/jc1144096387/canvas_nest

總結

以上所述是小編給大家介紹的解析html5 canvas實現背景鼠標連線動態效果代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽:萍鄉 中山 金昌 聊城 赤峰 綏化 阿壩 盤錦

巨人網絡通訊聲明:本文標題《解析html5 canvas實現背景鼠標連線動態效果代碼》,本文關鍵詞  解析,html5,canvas,實現,背景,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解析html5 canvas實現背景鼠標連線動態效果代碼》相關的同類信息!
  • 本頁收集關于解析html5 canvas實現背景鼠標連線動態效果代碼的相關信息資訊供網民參考!
  • 推薦文章
    久久亚洲综合色一区二区三区 | 国精品人伦一区二区三区蜜桃| 91社在线播放| 国产精品国产精品国产专区不卡| 久久国产精品一区二区三区四区| 欧美激情导航| 久久99精品久久久久久青青日本| 国产精华一区二区三区| 国产精品99久久久久久www| 樱桃视频在线观看一区| 日韩精品亚洲一区二区三区免费| 久久综合久久鬼| 99在线热播| 欧美视频第一页| 色综合天天综合色综合av| 亚洲美女精品一区| 亚洲中文字幕无码爆乳av| 欧美无人区码suv| 久久免费视频2| 欧美日韩黄视频| 亚洲国产精品麻豆| 亚洲欧美电影一区二区| 色悠久久久久综合欧美99| 国产亚洲欧美aaaa| 爱爱免费小视频| 国产乱码字幕精品高清av| 无码熟妇人妻av在线电影| 粉嫩av四季av绯色av第一区| 4438全国亚洲精品在线观看视频| 亚洲国产日韩a在线播放| 欧美韩国日本不卡| 国产亚洲午夜高清国产拍精品| 亚洲综合一区二区精品导航| 国产视频精品va久久久久久| 欧美理论片在线观看| 国内一区在线| 精品一区二区不卡| 夜夜嗨av一区二区三区网页 | 日韩写真欧美这视频| 国产激情视频在线播放| 韩国三级在线看| 老熟妇一区二区| 色欲人妻综合网| 久久国产亚洲精品无码| 亚洲小视频在线播放| 欧美激情第99页| 欧美成人乱码一区二区三区| 天天色图综合网| 欧美人妇做爰xxxⅹ性高电影 | 国产欧美亚洲视频| japanese在线播放| 亚洲欧美日韩国产成人综合一二三区 | 狠狠色狠狠色综合| 国产成人亚洲综合a∨猫咪| 亚洲人成网站在线| 国内偷自视频区视频综合| 无码熟妇人妻av在线电影| 亚洲精品国产精品乱码在线观看| 激情久久五月天| 一区二区在线观看免费视频播放 | 日韩区在线观看| 国产视频一区在线| 日韩国产高清一区| 日韩精品一区二区亚洲av性色 | 国产一区二区三区丝袜| 中文字幕av日韩精品| 国产露脸无套对白在线播放| 色婷婷**av毛片一区| 欧美图片第一页| 在线亚洲一区观看| 十八禁视频网站在线观看| www.性欧美| www.亚洲一区| 无码免费一区二区三区免费播放| www.黄色在线| 国产成人精品一区二| 日韩在线观看免费全集电视剧网站| 久久久亚洲影院| 国产又粗又大又爽的视频| 免费一级肉体全黄毛片| 欧美日韩国产免费| 水蜜桃一区二区| 久久精品美女视频| 中文字幕第一区| 精品亚洲夜色av98在线观看| 国产在线视频91| www久久久久久久| 欧美性xxxx极品hd满灌| 日韩av一二三四| 夜夜操天天操亚洲| 欧美体内she精高潮| 一区二区三区中文免费| 欧美激情视频免费看| 热久久国产精品| 欧美成人午夜免费视在线看片| 午夜在线视频免费观看| 伊人久久中文字幕| 欧美色手机在线观看| 国产精品免费久久久久久| 日韩欧美亚洲天堂| 欧美人一级淫片a免费播放| 欧美成人在线免费视频| www.久久国产| 国产亚洲成aⅴ人片在线观看 | 免费视频一二三区| 一区二区三区欧美日| 欧美色欧美亚洲另类七区| 日韩av一区二区三区四区| 久久久久久久久一区| 91玉足脚交白嫩脚丫在线播放| 成年人看的毛片| 综合激情成人伊人| 91丨porny丨探花| 无码精品视频一区二区三区 | 亚洲精品乱码久久久久久日本蜜臀| 国产一区在线播放| 国产伦精品一区二区三区妓女下载 | 成人欧美一区二区三区视频| 久久久亚洲人| 亚洲欧美色婷婷| 欧美大片在线播放| 91蜜桃视频在线| 91精品国产麻豆国产自产在线 | 国外色69视频在线观看| 午夜69成人做爰视频| 国内精品久久久久久| 日本不卡123| 超碰成人在线免费观看| 中文字幕av不卡| 成人免费播放器| 东方欧美亚洲色图在线| 国产欧美精品久久久| 国产精品白嫩白嫩大学美女| 亚洲18女电影在线观看| 免费无遮挡无码永久视频| 久久精品免费观看| 欧美成人精品不卡视频在线观看| 中文字幕国产综合| 日韩精品视频免费在线观看| 国产成人av无码精品| 亚洲成人手机在线| 无罩大乳的熟妇正在播放| 日韩精品一区二区亚洲av| 日韩一区二区三区精品视频| 久久久国产精品无码| 色悠久久久久综合欧美99| 国产天堂av在线| 日本久久91av| 久久蜜臀中文字幕| 久久精品99国产| 日韩精品一区二区三区老鸭窝| 韩国三级与黑人| 亚洲成人精品在线观看| 五月天色婷婷综合| 99久久婷婷国产综合精品 | 国模大尺度视频| 国产成人av网站| 999日本视频| 91在线视频18| 日韩av片网站| 亚洲国产日韩一区二区| 久久精品一卡二卡| 欧美激情在线看| 91精品免费看| 无码国产精品高潮久久99| 91欧美激情另类亚洲| 狂野欧美一区| 欧美日韩精品不卡| 秋霞电影一区二区| 欧美激情在线狂野欧美精品| www.99re7.com| 亚洲国产私拍精品国模在线观看| 在线观看免费视频污| 久久综合久久综合久久综合| 5g国产欧美日韩视频| 国产精品久久久久永久免费观看| 国产毛片毛片毛片毛片毛片毛片| 欧美一区二区三区视频在线 | 欧美性生交大片| 亚洲免费精彩视频| 国产精品福利电影| 亚洲看片网站| 精品国产3级a| 日韩电影在线看| 2018国产精品| 欧美大秀在线观看| 成a人片国产精品| 精品91一区二区三区| 国产午夜精品理论片a级大结局| 欧美三日本三级少妇三99| 亚洲国产精品激情在线观看| 只有这里有精品| 亚洲一区二区三区国产| 91精品国产综合久久久久久丝袜| 国产成人在线观看网站| 欧美第一淫aaasss性| 国产精品中文字幕欧美| 亚洲 高清 成人 动漫| www精品美女久久久tv| 国产午夜大地久久| 欧美色欧美亚洲高清在线视频| 91九色视频在线观看| 日本一区二区免费在线| 四虎1515hh.com| 日韩免费观看高清| 亚洲精品综合在线| 91麻豆精品在线| 日本久久精品一区二区| 欧美乱妇40p| 中文字幕免费不卡在线| 91网站免费视频| 伊人伊人伊人久久| 青青青国产在线| 欧美激情第一页在线观看| 亚洲美女在线一区| 熟女少妇a性色生活片毛片| 日韩一区二区三区xxxx| 亚洲美免无码中文字幕在线| 亚洲成人www| 伊人免费在线观看| 日本在线xxx| 欧美一区二区三区性视频| 日本在线观看中文字幕| 国产高清一区二区三区| 亚洲三区在线播放| 久久亚洲午夜电影| 午夜精品爽啪视频| 97久久久久久久| 国产免费一区二区视频| 欧美黄色片视频| 欧美在线观看视频在线| 国产福利一区二区三区视频在线| 日韩免费成人av| 亚洲一区三区| 一区二区亚洲欧洲国产日韩| 久久久蜜桃一区二区人| 黄色网在线视频| 欧美一区二区三区日韩视频| 中文字幕在线看人| 亚洲国产精品一区二区第四页av| 在线观看一区二区视频| 国产精品揄拍100视频| 亚洲国产精品va在线| 九九国产精品视频| 国产精品18在线| 欧美高清视频一区| 亚洲成人激情自拍| 中文在线字幕免费观| 日韩一级性生活片| 中文av一区特黄| 国产网站在线看| 2021久久精品国产99国产精品| 国产精品三级视频| 国产草草影院ccyycom| 精品在线观看一区| 五月天激情视频在线观看| 日本欧美色综合网站免费| 一区二区三区精品99久久| www.成人网.com| 久久这里只有精品免费| 日韩欧美亚洲区| 欧美一区二区三级| 成人小说亚洲一区二区三区| 亚洲国产精品毛片av不卡在线| 久久精品国产亚洲一区二区| 波多野结衣视频一区| 少妇性饥渴无码a区免费| 91精品国产福利| 性做久久久久久久久久| 国产精品边吃奶边做爽| 最新不卡av| 国产精品69久久| **欧美大码日韩| 亚洲视频在线免费播放| 亚洲欧美激情网| 亚洲国产小视频| 中文字幕av久久爽| 亚洲成人福利在线观看| 欧美精品videossex88| 在线影院国内精品| 欧美国产日韩精品免费观看| 蜜桃av噜噜一区二区三区小说| 在线观看 中文字幕| 泷泽萝拉在线播放| 日本福利视频在线| 欧美日韩一区二区视频在线| 97视频在线观看视频免费视频 | 久久久久无码国产精品| 国产精品一区二区不卡视频| 欧美性大战久久久久久久蜜臀| 国产成人三级在线观看视频| 99久久人妻无码中文字幕系列| 九一免费在线观看| 2022国产精品| 日韩欧美一级在线播放| 精品一区二区三区在线视频| 国产在线拍揄自揄拍| 国产高清精品一区| 日韩欧美国产免费播放| 99久久综合精品| 无码人妻精品一区二区三区蜜桃91| 色诱av手机版| 日本中文字幕高清| 丝袜美腿亚洲色图| 色无极影院亚洲| 国产一区在线免费| 欧美在线观看禁18| 不卡av在线网| 加勒比av在线播放| av动漫在线观看| 久久人人爽人人爽人人av| 日韩亚洲欧美精品| 久久影视中文粉嫩av| 91久久精品www人人做人人爽| 青草热久免费精品视频| www日韩欧美| 国产亚洲激情视频在线| 色噜噜偷拍精品综合在线| 99国产一区二区三精品乱码| aa视频在线免费观看| 国产精久久久久| 妞干网在线观看视频| 国产一区红桃视频| 中文字幕亚洲欧美一区二区三区 | 亚洲免费资源在线播放| 无码国产精品96久久久久| 四虎成人在线观看| 久久精品国产av一区二区三区| 97在线观看免费视频| 欧美精品久久久久久久久久久| 亚洲free性xxxx护士白浆| 欧美美女操人视频| 欧美日韩三级视频| 久久婷婷麻豆| 天堂中文在线网| 人人妻人人澡人人爽人人精品| 国产精品国产亚洲精品看不卡| 成年人网站大全| 国产aⅴ爽av久久久久| 丰满少妇一区二区三区专区| 中文字幕第24页| 久久精品免费av| www.av视频在线观看| 久久久一区二区三区四区| 天海翼在线视频| 少妇视频一区二区| 少妇高潮一69aⅹ| 91国内在线播放| 亚洲欧美日本国产有色| 亚洲美女搞黄| 日韩啊v在线| 91丝袜美腿美女视频网站| 国产区精品在线观看| 国产亚洲精品美女久久久久| 欧美午夜电影在线| 亚洲视频狠狠干| 欧美极品aⅴ影院| 国产精品成人一区二区三区夜夜夜| 国产亚洲va综合人人澡精品| 久久久久国产精品人| 亚洲午夜在线播放| 国产真实夫妇交换视频| 无码人妻aⅴ一区二区三区69岛| 中文在线一区二区三区| 国产熟人av一二三区| 亚洲一区二区三区久久| 2019最新中文字幕| 91精品国产免费久久久久久| 亚洲欧美日本精品| 日韩资源在线观看| 亚洲精品欧美极品| 小说区图片区图片区另类灬| 亚洲精品中文字幕无码蜜桃| 中文字幕黄色网址| 一级黄色片在线| 天天摸天天干天天操| 成人av午夜电影| 亚洲成人在线免费| 一本色道久久加勒比精品| 亚洲欧美视频一区| 亚洲国产视频一区二区| 中文av字幕一区| 国产精品电影院| 亚洲第一成年网| 丰满人妻一区二区| 日韩精品免费视频人成| 麻豆精品国产传媒mv男同| 人人妻人人玩人人澡人人爽| 亚洲国产成人一区二区| 11024精品一区二区三区日韩| 精品国精品国产自在久不卡| 免费人成精品欧美精品| 中文字幕免费一区| 日本精品一区二区三区四区的功能| 亚洲另类一区二区| 夜夜嗨av一区二区三区中文字幕| 色综合天天综合给合国产| 日韩一区二区在线观看视频| 欧美写真视频网站| 亚洲色图另类专区| 婷婷综合五月天| 欧美成人伊人久久综合网| 欧美不卡视频一区| 深夜福利亚洲导航| 国内精品视频久久| 99久久无色码| 国内精品国产三级国产99| 超碰av在线免费观看| 亚洲综合中文网| 中文字幕电影av|