亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js實現照片墻功能實例

2019-11-20 13:12:59
字體:
來源:轉載
供稿:網友

本文實例講述了js實現照片墻功能的方法。分享給大家供大家參考。具體實現方法如下:

復制代碼 代碼如下:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:html5="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8">
        <title>js照片墻</title>
        <meta http-equiv="X-UA-Compatible" content="edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="Keywords" content="js照片墻">
        <meta name="description" content="js照片墻">
        <link href="css/style.css" rel="stylesheet">
        <script src="move.js"></script>
        <style>
            *{padding: 0; margin: 0;}
            li{list-style: none;}
            ul{width: 660px; height:510px; background:#ccc;margin: 20px auto;}
            li{width:200px; height: 150px; margin: 10px; float: left; }
        </style>
        <script>
        /*
            var arr=['a','b','c','d','e','d','f'];
            var pos = arr.lastIndexOf('d');
            alert(pos);
            */
            window.onload=function(){
                var aLi = document.querySelectorAll('li');
                var oInput =  document.querySelector('#btn');
                var pos = [];
                var len= aLi.length;
                var izIndex= 2;
                //布局轉換

                for(var i=0;i<len;i++){
                    pos.push([aLi[i].offsetLeft,aLi[i].offsetTop]);
                }
                for(var i=0;i<len;i++){
                    aLi[i].style.left=pos[i][0]+'px';
                    aLi[i].style.top=pos[i][1]+'px';
                    aLi[i].style.position = 'absolute';
                    aLi[i].style.margin = '0px';
                }
                for(var i=0;i<len;i++){
                     aLi[i].index = i;
                     setDrag(aLi[i]);
                }
                oInput.onclick=function(){
                    var randomArr = [0,1,2,3,4,5,6,7,8];
                    randomArr.sort(function(num1,num2){
                        return Math.random()-0.5;
                    })
                    for(var i=0;i<len;i++){
                        //增加隨機位置的情況
                       startMove(aLi[i],{left:pos[randomArr[i]][0],top:pos[randomArr[i]][1]});
                       //修正索引
                       aLi[i].index = randomArr[i];
                    }
                }
                //拖拽
                function setDrag(obj){
                    obj.onmousedown =function(ev){
                        izIndex++;
                        obj.style.zIndex= izIndex;
                        var ev = ev || event;
                        var disX = ev.clientX - obj.offsetLeft;
                        var disY = ev.clientY - obj.offsetTop;
                        document.onmousemove=function(ev){
                            var ev = ev || event;
                            obj.style.left =  ev.clientX- disX +'px';
                            obj.style.top =  ev.clientY - disY +'px';
                            for(var i=0; i<len; i++){
                                aLi[i].style.border='none';
                            }
                            var nL = nearLi(obj);
                            if(nL){
                                nL.style.border='2px solid red';
                            }                         
                        }
                        document.onmouseup= function(){
                            document.onmousemove = null;
                            document.onmouseup = null;
                            var nL = nearLi(obj);
                            if(nL){
                                nL.style.border='2px solid red';
                                startMove(obj,{left:pos[nL.index][0],top:pos[nL.index][1]});
                                startMove(nL,{left:pos[obj.index][0],top:pos[obj.index][1]});
                                var tmp =nL.index;
                                nL.index = obj.index;
                                obj.index = tmp;
                                nL.style.border='';
                            }else{
                                startMove(obj,{left:pos[obj.index][0],top:pos[obj.index][1]});
                            }
                        }
                        return false;
                    }
                }
                //檢測是否有碰撞
                function isDump(obj1,obj2){
                    var l1= obj1.offsetLeft;
                    var r1= l1+obj1.offsetWidth;
                    var t1= obj1.offsetTop;
                    var b1 =obj1.offsetHeight +t1;

                    var l2= obj2.offsetLeft;
                    var r2= l2+obj2.offsetWidth;
                    var t2= obj2.offsetTop;
                    var b2 =obj2.offsetHeight +t2;
                    if(b2<t1 || l2>r1 || r2<l1 || t2>b1){
                        return false;
                    }else{
                        return true;
                    }
                }
                //尋找最近的節點
                function nearLi(obj){
                    var index= -1;
                    var value =9999;
                   for(var i=0; i<len; i++){
                        if(isDump(obj,aLi[i]) && obj !=aLi[i]){
                            var c = getDis(obj,aLi[i]);
                            if(c <value){
                                value = c;
                                index = i;
                            }
                        }
                    }
                    if(index !=-1){
                        return aLi[index];
                    }else{
                        return false;
                    }
                }
                function getDis(obj1,obj2){
                    var x = obj1.offsetLeft - obj2.offsetLeft;
                    var y = obj1.offsetTop - obj2.offsetTop;
                    return  Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
                }
            }
        </script>
    </head>
    <body>
    <button id="btn">click</button>
        <ul>
            <li><img src="1l.jpg" width="200px" height="150px"></li>
            <li><img src="2l.jpg" width="200px" height="150px"></li>
            <li><img src="3l.jpg" width="200px" height="150px"></li>
            <li><img src="4l.jpg" width="200px" height="150px"></li>
            <li><img src="5l.jpg" width="200px" height="150px"></li>
            <li><img src="6l.jpg" width="200px" height="150px"></li>
            <li><img src="1l.jpg" width="200px" height="150px"></li>
            <li><img src="2l.jpg" width="200px" height="150px"></li>
            <li><img src="4l.jpg" width="200px" height="150px"></li>
        </ul>
    </body> 
</html>

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美精品一区| 韩日欧美一区二区| 日韩在线视频观看正片免费网站| 久久久国产精品亚洲一区| 久久久伊人欧美| 亚洲人a成www在线影院| 深夜精品寂寞黄网站在线观看| 欧美性视频精品| 亚洲第一精品福利| 91视频-88av| 欧美大片免费观看| 国产免费观看久久黄| 日本亚洲欧洲色α| 日本一区二区在线免费播放| 国产精品久久久久免费a∨大胸| 97在线视频精品| 欧美激情日韩图片| 777国产偷窥盗摄精品视频| 韩国日本不卡在线| 亚洲色图综合久久| 日韩av电影手机在线| 国产欧美日韩亚洲精品| 亚洲欧美日韩中文在线| 91国内揄拍国内精品对白| 亚洲国产美女精品久久久久∴| 91精品在线观| 国产日韩专区在线| 久久久久久久久久久人体| 亚洲一区二区久久久久久久| 亚洲最大av网| 国产精品劲爆视频| 中文字幕欧美精品在线| 色综合伊人色综合网站| 日韩精品视频在线观看网址| 日韩欧美中文在线| 亚洲男人的天堂在线播放| 精品国偷自产在线| 2019日本中文字幕| 国产日韩在线视频| 亚洲桃花岛网站| 久久精品一偷一偷国产| 欧美性xxxxx极品娇小| 精品久久久久久亚洲精品| 国产精品盗摄久久久| 日韩欧美成人网| 亚洲成人网在线| 国产精品毛片a∨一区二区三区|国| 国产91在线播放精品91| 亚洲国产成人精品久久久国产成人一区| 亚洲成人久久久久| 国产精品高清在线| 亚洲色图综合久久| 亚洲一区国产精品| 91在线直播亚洲| 久久中文字幕在线视频| 精品香蕉在线观看视频一| 综合136福利视频在线| 精品欧美一区二区三区| 欧美在线视频免费观看| 精品国产乱码久久久久久虫虫漫画| 在线亚洲午夜片av大片| 精品久久久久久久中文字幕| 91精品视频在线免费观看| 欧美猛少妇色xxxxx| 亚洲欧美另类自拍| 亚洲精选一区二区| 国产精品草莓在线免费观看| 国产欧美日韩中文字幕| 久久久久久久影视| 国产精品日韩精品| 国产精品久久久久久久久久东京| 国产一区二区欧美日韩| 91精品国产91久久久久久不卡| 久久精品一区中文字幕| 国产精品精品久久久久久| 亚洲精品国产精品自产a区红杏吧| 国产精品va在线播放| 久久久人成影片一区二区三区| 亚洲欧洲激情在线| 国产亚洲欧美日韩美女| 国产精品久久久久福利| 日韩欧美中文第一页| 国产成人精品久久二区二区91| 成人国产在线视频| 日韩成人免费视频| 国产精品流白浆视频| 欧美日韩xxxxx| 成人国产亚洲精品a区天堂华泰| 理论片在线不卡免费观看| 欧美日韩午夜激情| 欧美日韩国产一区中文午夜| 成人国内精品久久久久一区| 国产精品久久久久久久久久免费| 精品女厕一区二区三区| 国产日韩亚洲欧美| 欧美在线精品免播放器视频| 日韩在线观看免费高清完整版| 欧美性xxxxxxx| 亚洲有声小说3d| 欧美日韩亚洲激情| 成人日韩在线电影| 欧美一二三视频| 精品久久香蕉国产线看观看亚洲| 亚洲精品国精品久久99热| 亚洲国产精品视频在线观看| 亚洲国产欧美在线成人app| 成人国产精品久久久久久亚洲| 久久影视免费观看| 欧美亚洲视频一区二区| 国产成人在线一区二区| 欧美性理论片在线观看片免费| 91视频-88av| 69av成年福利视频| 国产成人精品在线| 欧美亚州一区二区三区| 亚洲日韩中文字幕在线播放| 日韩亚洲欧美成人| 久久亚洲精品毛片| 欧美国产日韩中文字幕在线| 福利视频一区二区| 久久久精品网站| 久久国产精品久久久| 一本色道久久88综合亚洲精品ⅰ| 久久免费视频观看| 国产精品一区二区久久久久| 国产一区二区三区视频在线观看| 欧美日韩在线观看视频小说| 久久国产精品99国产精| 欧美视频专区一二在线观看| 中文字幕亚洲在线| 成人黄色中文字幕| 欧美日韩一区二区免费在线观看| 欧美福利在线观看| 自拍偷拍免费精品| 这里只有精品丝袜| 亚洲图片在区色| 亚洲成人精品av| 久久人人爽人人爽爽久久| 日韩精品视频免费在线观看| 亚洲人成电影网站色| 国产精品久久久久77777| 欧美精品久久久久久久久| 成人做爽爽免费视频| 国产精品视频99| 欧美日韩免费观看中文| 亚洲肉体裸体xxxx137| 欧美激情成人在线视频| 久久久久久久香蕉网| 日韩电影免费在线观看| 欧美第一页在线| 亚洲最大av网站| 81精品国产乱码久久久久久| 一级做a爰片久久毛片美女图片| 国产91亚洲精品| 国产在线高清精品| 欧美性猛xxx| 狠狠操狠狠色综合网| 亚洲有声小说3d| 久久久女人电视剧免费播放下载| 日本午夜在线亚洲.国产| 国产98色在线| 17婷婷久久www| 91香蕉嫩草神马影院在线观看| 亚洲激情在线视频|