最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實現(xiàn)九宮格拖拽效果

 更新時間:2022年06月28日 16:06:33   作者:zy_.  
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)九宮格拖拽效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JavaScript實現(xiàn)九宮格拖拽效果的具體代碼,供大家參考,具體內容如下

關于一些拼圖游戲什么的,見人家效果做的不錯,參考下別人寫的代碼,我也嘗試著做了個。

<!DOCTYPE html>
<html>
?? ?<head>
?? ??? ?<meta charset="UTF-8">
?? ??? ?<title></title>
?? ??? ?<style type="text/css">
?? ??? ??? ?body{
?? ??? ??? ??? ?margin: 0;
?? ??? ??? ??? ?padding: 0;
?? ??? ??? ?}
?? ??? ??? ?#wrap{
?? ??? ??? ??? ?position: relative;
?? ??? ??? ?}
?? ??? ??? ?#wrap div{
?? ??? ??? ??? ?position: absolute;
?? ??? ??? ??? ?width: 100px;
?? ??? ??? ??? ?height: 100px;
?? ??? ??? ??? ?font-size: 50px;
?? ??? ??? ??? ?text-align: center;
?? ??? ??? ??? ?line-height: 100px;
?? ??? ??? ??? ?border-radius: 10px;
?? ??? ??? ?}
?? ??? ?</style>
?? ?</head>
?? ?<body>
?? ??? ?<div id="wrap"></div>
?? ??? ?<script type="text/javascript">
?? ??? ??? ?//生成結構
?? ??? ??? ?var oWrap = document.getElementById("wrap");
?? ??? ??? ?var mt = ml = 10;
?? ??? ??? ?for(var i = 0; i < 3; i++){
?? ??? ??? ??? ?for(var j = 0; j < 3; j++){
?? ??? ??? ??? ??? ?var oDiv = document.createElement("div");
?? ??? ??? ??? ??? ?oWrap.appendChild(oDiv);
?? ??? ??? ??? ??? ?oDiv.style.top = i*(oDiv.offsetHeight + mt) + "px";
?? ??? ??? ??? ??? ?oDiv.style.left = j*(oDiv.offsetWidth + ml) + "px";
?? ??? ??? ??? ??? ?oDiv.style.backgroundColor = "rgb("+Math.floor(Math.random()*256)+","+Math.floor(Math.random()*256)+","+Math.floor(Math.random()*256)+")"
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?var arr = "ABCDEFGHI";
?? ??? ??? ?
?? ??? ??? ?var aItems = oWrap.children;
?? ??? ??? ?var len = aItems.length;
?? ??? ??? ?
?? ??? ??? ?for(var i = 0; i < aItems.length; i++){
?? ??? ??? ??? ?aItems[i].innerHTML = arr[i];
?? ??? ??? ?}
?? ??? ??? ?//拖拽及交換位置
?? ??? ??? ?
?? ??? ??? ?for(var i = 0; i < aItems.length; i++){
?? ??? ??? ??? ?aItems[i].onmousedown = function(e){
?? ??? ??? ??? ??? ?var evt = e || event;
?? ??? ??? ??? ??? ?var x = evt.offsetX;
?? ??? ??? ??? ??? ?var y = evt.offsetY;
?? ??? ??? ??? ??? ?/*var x = evt.clientX - this.offsetLeft - oWrap.offsetLeft;
?? ??? ??? ??? ??? ?var y = evt.clientY - this.offsetTop - oWrap.offsetTop;*/
?? ??? ??? ??? ??? ?var _this = this;
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?var cloneNode = this.cloneNode();
?? ??? ??? ??? ??? ?cloneNode.style.border = '1px dashed #cecece';
?? ??? ??? ??? ??? ?this.style.zIndex = 1;
?? ??? ??? ??? ??? ?oWrap.replaceChild(cloneNode,this);
?? ??? ??? ??? ??? ?oWrap.appendChild(this);
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?document.onmousemove = function(e){
?? ??? ??? ??? ??? ??? ?var evt = e || event;
?? ??? ??? ??? ??? ??? ?var _left = evt.clientX - x - oWrap.offsetLeft;
?? ??? ??? ??? ??? ??? ?var _top = evt.clientY - y - oWrap.offsetTop;
?? ??? ??? ??? ??? ??? ?_this.style.left = _left + "px";
?? ??? ??? ??? ??? ??? ?_this.style.top = _top + "px";
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?return false;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?document.onmouseup = function(){
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?//交換位置
?? ??? ??? ??? ??? ??? ?var disArr = [];
?? ??? ??? ??? ??? ??? ?var newArr = [];
?? ??? ??? ??? ??? ??? ?console.log(aItems.length);
?? ??? ??? ??? ??? ??? ?for(var i = 0; i < len; i++){
?? ??? ??? ??? ??? ??? ??? ?var disX = _this.offsetLeft - aItems[i].offsetLeft;
?? ??? ??? ??? ??? ??? ??? ?var disY = _this.offsetTop - aItems[i].offsetTop;
?? ??? ??? ??? ??? ??? ??? ?var dis = Math.sqrt(Math.pow(disX,2)+Math.pow(disY,2));
?? ??? ??? ??? ??? ??? ??? ?disArr.push(dis);
?? ??? ??? ??? ??? ??? ??? ?newArr.push(dis);
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ?disArr.sort(function(a,b){
?? ??? ??? ??? ??? ??? ??? ?return a-b;
?? ??? ??? ??? ??? ??? ?})
?? ??? ??? ??? ??? ??? ?var minIndex = newArr.indexOf(disArr[0]);
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?_this.style.left = aItems[minIndex].style.left;
?? ??? ??? ??? ??? ??? ?_this.style.top = aItems[minIndex].style.top;
?? ??? ??? ??? ??? ??? ?aItems[minIndex].style.left = cloneNode.style.left;
?? ??? ??? ??? ??? ??? ?aItems[minIndex].style.top = cloneNode.style.top;
?? ??? ??? ??? ??? ??? ?oWrap.removeChild(cloneNode);
?? ??? ??? ??? ??? ??? ?document.onmousemove = null;
?? ??? ??? ??? ??? ??? ?document.onmouseup = null;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?/*var arr = [45,32,11,90];
?? ??? ??? ?var minVal = Math.min.apply(null,arr);
?? ??? ??? ?var minIndex = arr.indexOf(minVal);
?? ??? ??? ?console.log(minVal,arr,minIndex);*/
?? ??? ?</script>
?? ?</body>
</html>

這是效果圖

雖說實現(xiàn)了效果,但我寫的還是不太嚴謹,還有諸多bug,比如上邊做邊沒距離,實際寫的話還要加上這個距離,即使距離為0,還有就是我發(fā)現(xiàn)拖拽的時候,如果使用qq截圖的話,克隆的那個小方塊沒辦法消失,只得重新刷新頁面,有沒有大佬解決下。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 微信小程序中遇到的iOS兼容性問題小結

    微信小程序中遇到的iOS兼容性問題小結

    這篇文章主要給大家介紹了關于微信小程序中遇到的一些iOS兼容性問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • echarts報錯:Error?in?mounted?hook的解決方法

    echarts報錯:Error?in?mounted?hook的解決方法

    最近又遇到了寫echarts的時候常遇到的一個錯誤,這篇文章主要給大家介紹了關于echarts報錯:Error?in?mounted?hook:?“TypeError:?Cannot?read?properties?of?undefined?(reading?‘init‘)“的解決方法,需要的朋友可以參考下
    2022-07-07
  • JavaScript的null和undefined區(qū)別示例介紹

    JavaScript的null和undefined區(qū)別示例介紹

    在Javascript中對于這種生命后沒有給定初始值的變量,就給他一個undefined,如果要將一個標識符聲明稱object類型,但是暫時不給他實例,那么就可以將它先初始化為null
    2014-09-09
  • Javascript模擬scroll滾動效果腳本

    Javascript模擬scroll滾動效果腳本

    項目需要寫了一段模擬Scroll滾動代碼,分享的同時,我有些疑問,希望大家能幫忙解決,代碼如下
    2008-09-09
  • js對圖片base64編碼字符串進行解碼并輸出圖像示例

    js對圖片base64編碼字符串進行解碼并輸出圖像示例

    這篇文章主要介紹了js對圖片base64編碼字符串進行解碼并輸出圖像的具體實現(xiàn),大家可以參考下面的示例
    2014-03-03
  • javascript瀑布流式圖片懶加載實例

    javascript瀑布流式圖片懶加載實例

    這篇文章主要為大家詳細介紹了javascript瀑布流式圖片懶加載實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • a標簽調用js的方法總結

    a標簽調用js的方法總結

    在本篇文章中小編給大家整理了一篇關于a標簽調用js的幾種方法的相關內容,有此需要的朋友們可以參考下。
    2019-09-09
  • JS前端實現(xiàn)留言板功能的方法總結

    JS前端實現(xiàn)留言板功能的方法總結

    留言板的主要使用場景是為用戶提供一個在網站或應用上留言的平臺,本文主要為大家介紹了四個常見的前端實現(xiàn)留言板功能的方法,希望對大家有所幫助
    2023-11-11
  • JS實現(xiàn)帶導航城市列表以及輸入搜索功能

    JS實現(xiàn)帶導航城市列表以及輸入搜索功能

    這篇文章主要為大家詳細介紹了JS實現(xiàn)帶導航城市列表以及輸入搜索功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • js計時事件實現(xiàn)圓形時鐘

    js計時事件實現(xiàn)圓形時鐘

    這篇文章主要為大家詳細介紹了js計時事件實現(xiàn)圓形時鐘,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評論

邹城市| 博兴县| 南漳县| 奉新县| 吐鲁番市| 奉节县| 郁南县| 长岭县| 竹北市| 肇庆市| 祁阳县| 玉树县| 垫江县| 新宾| 治县。| 阳曲县| 长垣县| 临海市| 金川县| 潼关县| 江城| 海安县| 阳朔县| 邹城市| 绥江县| 昂仁县| 曲靖市| 日喀则市| 交口县| 景谷| 页游| 玉屏| 房山区| 宜兰县| 台州市| 彝良县| 尚志市| 博客| 凯里市| 德惠市| 息烽县|