javascript 实现图片拖动

javascript实现图片拖动效果并不难,主要的思路如下

1:给图片绑定监听鼠标按下对象,设置拖动属性为true

2:鼠标抬起:拖动属性为false

    鼠标移动:改变坐标即可,新坐标=图片原始坐标+鼠标移动后坐标-鼠标移动前坐标

注意事项

要给图片的位置属性设为fixed或者absolute,并且要图片复制初始的left和top属性

代码如下

<!DOCTYPE html>
<html>
<head>
    <meta  content="text/html;charset=utf-8" http-equiv="Content-Type">
    <title>test dragging picture</title>
    <script  type="text/javascript" charset="utf-8">
    function draggingP (e) {
        //确认事件
        var e = e || window.event;
        //确认源事件
        var myElement = e.srcElement || e.target;
        //不要默认事件
        if(e.preventDefault) e.preventDefault();
        else  e.returnvalue = false;
        var mypic = document.getElementById("mypic");
        mypic['dragging']=true;//拖动属性为true
        var lef =parseInt(myElement.style.left);
        var to = parseInt(myElement.style.top);
        // alert(lef+"+"+to);
        myElement.onmouseup = function  () {
            mypic['dragging']=false;//拖动属性为false
        }
        document.onmousemove = function  (eMove) {
            var eMove = eMove || window.event;
            if(mypic['dragging']==true){//新坐标
                myElement.style.left = eMove.clientX -e.clientX  + lef+"px";
                myElement.style.top  = eMove.clientY -e.clientY + to+"px";
                return false;
            }
        }

    }
    window.onload = function  () {
        var mypic = document.getElementById("mypic");
        mypic['dragging']=false;
        if(navigator.userAgent.indexOf('MSIE')>0){//IE
            mypic.attachEvent("onmousedown",draggingP);
        }//绑定监听事件
        else{
            mypic.addEventListener("mousedown",draggingP,false);
        }        
    }
     </script>
</head>
<body>
    <img src="http://www.sysu.edu.cn/favicon.ico" alt="sysu" name="mypic" id="mypic" style="position:absolute">
</body>
</html>

 

转载于:https://www.cnblogs.com/qwj-sysu/p/4079226.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值