中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript怎么實現簡單拖拽效果

發布時間:2021-09-14 21:08:40 來源:億速云 閱讀:158 作者:chen 欄目:開發技術

本篇內容主要講解“JavaScript怎么實現簡單拖拽效果”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JavaScript怎么實現簡單拖拽效果”吧!

本文實例為大家分享了JavaScript實現簡單拖拽效果的具體代碼,供大家參考,具體內容如下

先看實現的效果:

JavaScript怎么實現簡單拖拽效果

思路:里面用到了三個事件,鼠標按下、移動、松開事件

那么首先創建盒子并且給它賦予css樣式

HTML:

// html
<div>
    <p>我是個藍色的盒子</p>
</div>

CSS:

CSS
*{margin: 0;padding: 0;}
        div{
            width: 100px;
            height: 100px;
            background-color: cornflowerblue;
            position: absolute;
        }
        p{
            width: 100px;
            height: 100px;
            line-height: 100px;
            font-size: 10px;
            color: #fff;
            text-align: center;
            transition: .5s all;
        }
        p:hover{
            transform: translateY(-5px);
            transition: .5s all;
            box-shadow: 10px 10px 5px gray;
}

然后在JS設置相應的方法

var div = document.querySelector('div');
        var p   = document.querySelector('p');
        // 先定義初始化變量x、y
        var x =0;
        var y = 0;
        // var i = 3;
        var TorF= false;
        //盒子里的文字無法被選中
        div.onselectstart = function (e) {
            return false;
        }
        div.addEventListener('mousedown',function(e){
            // client:鼠標按鈕時輸出鼠標指針的坐標
            x = e.clientX;
            y = e.clientY;
            // 格式:obj.offsetLeft:獲取左和上的偏移量
            // 在這里特別說明一下:這個屬性是只讀的,不能夠賦值。
            // 返回當前元素距離父元素(body)左邊的距離
            // 這里的l,t并不是聲明了一個全局變量,而是創建了一個全局對象的屬性。
            l = div.offsetLeft;
            t = div.offsetTop;
            // 鼠標設置移動箭頭
            div.style.cursor =  'move';
            p.innerHTML =  '我被按下了 ^_^';
            TorF= true;
        });
        // 當整個屏幕觸發移動事件時
        document.addEventListener('mousemove',function(e){
            // 如果為false則終止函數的執行并返回函數的值
            if (Torf == false) {
                return; 
            }
            // 在此函數中定義局部變量
            var twox = e.clientX;
            var twoy = e.clientY;
            // 用獲取到的鼠標指針的坐標 - (鼠標指針的坐標 - 偏移量) = 實際鼠標拖動的位置
            // 后面一定要加上px單位,因為本身獲取是沒有單位的
            var twol = twox - (x-l);
            var twot = twoy - (y-t); 
            div.style.left = twol+'px';
            div.style.top = twot+'px';
            p.innerHTML =  '我正在被拖動  -.-';
        });
        div.addEventListener('mouseup',function(){
            // 松開鍵盤時停止鼠標移動事件
            TorF= false;
            // 鼠標恢復默認樣式
            div.style.cursor = 'default';
            p.innerHTML =  '我被彈開了QAQ';
 })

注意:

1、想控制某一個盒子的位置,必須給盒子添加定位,否則盒子不會動

2、offsetLeft這個屬性是只讀的,不能夠賦值

3、鼠標位置的的計算:鼠標指針的坐標 - (鼠標指針的坐標 - 偏移量) = 實際鼠標拖動的位置

到此,相信大家對“JavaScript怎么實現簡單拖拽效果”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高密市| 卢龙县| 车险| 随州市| 巴南区| 曲靖市| 宣武区| 比如县| 汉源县| 巫山县| 阿拉善右旗| 康乐县| 湘阴县| 深州市| 从化市| 手游| 乐平市| 类乌齐县| 闽清县| 牟定县| 锡林浩特市| 旬邑县| 克东县| 栾川县| 夏邑县| 郧西县| 社旗县| 望奎县| 唐海县| 琼中| 商洛市| 岐山县| 高州市| 芜湖县| 和林格尔县| 赣榆县| 高尔夫| 东方市| 淮南市| 九寨沟县| 丰城市|