拖拽中怎麼修復bug


拖拽原理

設被拖動盒子爲“Box”;
設iEvent=ev || event;
給Box設position:absolute樣式;

鼠標座標(iEvent.clientXiEvent.clientY);
Box相對父級距離(Box.offsetLeftBox.offsetTop
計算出鼠標相對於盒子的距離(BoxX=iEvent.clientX-Box.offsetLeftBoxY=iEvent.clientY-Box.offsetTop


給Box添加鼠標按下事件:Box.οnmοusedοwn=function(){};

Box的即時座標:
Box.style.left=iEvent.clientX-BoxX+’px’;
Box.style.top=iEvent.clientY-BoxY+’px’;


案列代碼:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            #box{
                width: 200px;
                height: 120px;
                background-color: crimson;
                position: absolute;
                cursor: pointer;
            }

        </style>
        <script type="text/javascript">
            window.οnlοad=function(){
                var Box=document.getElementById('box');
                var divX=0;
                var divY=0;
                Box.οnmοusedοwn=function(ev){
                    var iEvent=ev || event;
                    divX=iEvent.clientX-Box.offsetLeft;
                    divY=iEvent.clientY-Box.offsetTop;
                    document.οnmοusemοve=function(ev){
                        var iEvent=ev || event;                     
                        Box.style.left=iEvent.clientX-divX+'px';
                        Box.style.top=iEvent.clientY-divY+'px';                     
                    };                                      
                };
                Box.οnmοuseup=function(){
                    document.οnmοusemοve=null;                                  
                };
            };
        </script>
    </head>
    <body>
        <div id="box"></div>
    </body>
</html>

每日清新
這裏寫圖片描述

作者:王華橋

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章