js implémentation de la fonction de mur de photos example_javascript skills
WBOYoriginal
2016-05-16 16:15:391908parcourir
L'exemple de cet article décrit comment implémenter la fonction de mur de photos dans js. Partagez-le avec tout le monde pour votre référence. La méthode de mise en œuvre spécifique est la suivante :
<script><br>
/*<br>
var arr=['a','b','c','d','e','d','f'];<br>
var pos = arr.lastIndexOf('d');<br>
alerte(pos);<br>
*/<br>
window.onload=function(){<br>
var aLi = document.querySelectorAll('li');<br>
var oInput = document.querySelector('#btn');<br>
var pos = [];<br>
var len= aLi.longueur;<br>
var izIndex= 2;<br>
//布局转换<p> pour(var i=0;i<len;i ){<br />
pos.push([aLi[i].offsetLeft,aLi[i].offsetTop]);<br />
><br />
pour(var i=0;i<len;i ){<br />
aLi[i].style.left=pos[i][0] 'px';<br />
aLi[i].style.top=pos[i][1] 'px';<br />
aLi[i].style.position = 'absolu';<br />
aLi[i].style.margin = '0px';<br />
><br />
pour(var i=0;i<len;i ){<br />
aLi[i].index = je;<br />
setDrag(aLi[i]);<br />
} <br />
oInput.onclick=function(){<br />
var randomArr = [0,1,2,3,4,5,6,7,8];<br />
randomArr.sort(function(num1,num2){<br />
return Math.random()-0.5;<br />
})<br />
pour(var i=0;i<len;i ){<br />
//增加随机位置的情况<br />
startMove(aLi[i],{left:pos[randomArr[i]][0],top:pos[randomArr[i]][1]});<br />
//修正索引<br />
aLi[i].index = randomArr[i];<br />
} <br />
><br />
//拖拽<br />
fonction setDrag(obj){<br />
obj.onmousedown =fonction(ev){<br />
izIndex ;<br />
obj.style.zIndex= izIndex;<br />
var ev = ev || événement ;<br />
var disX = ev.clientX - obj.offsetLeft;<br />
var disY = ev.clientY - obj.offsetTop;<br />
document.onmousemove=function(ev){<br /> var ev = ev || événement ;<br />
obj.style.left = ev.clientX-disX 'px';<br />
obj.style.top = ev.clientY - disY 'px';<br />
pour(var i=0; i<len; i ){<br />
aLi[i].style.border='none';<br />
} <br />
var nL = procheLi(obj); <br />
si(nL){<br />
nL.style.border='2px rouge uni';<br />
} <br />
><br />
document.onmouseup= function(){<br />
document.onmousemove = null;<br />
document.onmouseup = null;<br />
var nL = procheLi(obj); <br />
si(nL){<br />
nL.style.border='2px rouge uni';<br />
startMove(obj,{left:pos[nL.index][0],top:pos[nL.index][1]});<br />
startMove(nL,{left:pos[obj.index][0],top:pos[obj.index][1]});<br />
var tmp =nL.index;<br />
nL.index = obj.index;<br />
obj.index = tmp;<br />
nL.style.border='';<br />
}autre{<br />StartMove(obj,{left:pos[obj.index][0],top:pos[obj.index][1]});<br />
}
return false ;
}<br />
}<br />
//Détecter s'il y a une collision<br />
la fonction isDump(obj1,obj2){<br />
var l1= obj1.offsetLeft;<br />
var r1= l1 obj1.offsetWidth;<br />
var t1= obj1.offsetTop;<br />
var b1 =obj1.offsetHeight t1;<br /><p> var l2= obj2.offsetLeft;<br />
var r2= l2 obj2.offsetWidth;<br />
var t2= obj2.offsetTop;<br />
var b2 =obj2.offsetHeight t2;<br />
Si(b2<t1 || l2>r1 || r2<l1 || t2>b1){<br>
return false ;
}autre{<br>
return true ;<br>
}<br>
}<br>
//Trouver le nœud le plus proche<br>
fonction près deLi(obj){<br>
var index= -1;<br>
valeur var =9999;<br>
pour(var je=0; je<len; je){<br>
Si(isDump(obj,aLi[i]) && obj !=aLi[i]){<br>
var c = getDis(obj,aLi[i]);<br>
Si(c <valeur){<br>
valeur = c;
indice = je;<br>
}
}
Si(index !=-1){<br>
Retourner aLi[index];<br>
}autre{<br>
return false ;
}<br>
}<br>
fonction getDis(obj1,obj2){<br>
var x = obj1.offsetLeft - obj2.offsetLeft;<br>
var y = obj1.offsetTop - obj2.offsetTop;<br>
Retour Math.sqrt(Math.pow(x,2) Math.pow(y,2));<br> ><br>
><br>
</script>
clic
希望本文所述对大家的javascript程序设计有所帮助。
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn