js 照片墙或随机
2021/10/26 23:09:35
本文主要是介绍js 照片墙或随机,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{padding:0;margin:0;} ul{position:relative;width:700px;margin:0 auto;border:1px solid ;} li{list-style:none;float:left;width:200px;height:200px;margin:0 0 20px 20px;background:red;line-height:200px;color:#fff;font-size:100px;text-align:center;} </style> </head> <body> <button>随机</button> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> </ul> <script src="js/zfdx.js"></script> <script> var ul=document.getElementsByTagName('ul')[0]; var li=document.getElementsByTagName('li'); var button=document.getElementsByTagName('button')[0]; var arr=[]; var zIndex=1; for(var i=0;i<li.length;i++){ arr.push([li[i].offsetLeft,li[i].offsetTop]) } for(var i=0;i<li.length;i++){ li[i].style.position='absolute'; li[i].style.left=arr[i][0]+'px'; li[i].style.top=arr[i][1]+'px'; li[i].style.margin=0; } for(var i=0;i<li.length;i++){ li[i].index=i; Drag(li[i]); } button.onclick=function () { var sjArr=[]; for(var i=0;i<li.length;i++){ sjArr+=i; } var sjarr=sjArr.split(''); sjarr.sort(function(a,b){ return Math.random()-.1; //随机数 }); console.log(sjarr); for(var i=0;i<li.length;i++){ startMove(li[i],{'left':arr[sjarr[i]][0],'top':arr[sjarr[i]][1]}) } }; function Drag(obj) { var disX=0; var disY=0; obj.onmousedown=function (ev) { zIndex++; obj.style.zIndex=zIndex; var ev=ev||window.event; disX=ev.clientX-obj.offsetLeft; disY=ev.clientY-obj.offsetTop; document.onmousemove=function (ev) { var ev=ev||window.event; obj.style.left=ev.clientX-disX+'px'; obj.style.top=ev.clientY-disY+'px'; for(var i=0;i<li.length;i++) { li[i].style.border=''; } var mo=minli(obj); if(mo){ mo.style.border='2px solid blue'; } }; document.onmouseup=function () { document.onmousemove=null; document.onmouseout=null; var mo = minli(obj); var tmp = 0; if(mo){ startMove( mo , { left : arr[obj.index][0] , top : arr[obj.index][1] } ); startMove( obj , { left : arr[mo.index][0] , top : arr[mo.index][1] } ); mo.style.border = ''; tmp = obj.index; obj.index = mo.index; mo.index = tmp; } else{ startMove( obj , { left : arr[obj.index][0] , top : arr[obj.index][1] } ); } }; return false; } } console.log(arr); function minli(obj) {//最小值,,距离this距离最短的 var maxNum=9999; var index=-1; for(var i=0;i<li.length;i++) { if(pzjc(obj,li[i]) && obj!=li[i]){ var c=ggdl(obj,li[i]); if(c<maxNum){ maxNum=c; index=i; } } } if(index != -1){ return li[index]; } else{ return false; } } function ggdl(obj1,obj2) { //勾股定理 var l=obj1.offsetLeft-obj2.offsetLeft; var t=obj1.offsetTop-obj2.offsetTop; return Math.sqrt(l*l + t*t) } function pzjc(obj1,obj2) { //碰撞检测 var L1=obj1.offsetLeft; var Lz1=obj1.offsetLeft+obj1.offsetWidth; var T1=obj1.offsetTop; var Tz1=obj1.offsetTop+obj1.offsetHeight; var L2=obj2.offsetLeft; var Lz2=obj2.offsetLeft+obj2.offsetWidth; var T2=obj2.offsetTop; var Tz2=obj2.offsetTop+obj2.offsetHeight; if( Lz1<L2 || L1>Lz2 || Tz1<T2 || T1>Tz2 ){ return false }else{ return true; } } </script> </body> </html>
这篇关于js 照片墙或随机的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程