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>
时间: 2024-10-13 02:08:15

javascript 实现图片拖动的相关文章

javascript完美实现图片拖动改变顺序

在web页面中,需要改变多个元素的位置,可以通过元素拖动来实现.HTML5中加入了一个全局属性draggable,通过设置true/false来控制元素是否可拖动. 下面以图片拖动为例,用jQuery来实现:页面上有多个图片,把一个图片拖动到其他两个图片中间,就可以将这个图片的位置插入到两图之间. html> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js">&l

图片拖动组件

图片拖动组件 DEMO <html> <HEAD> <title>鼠标拖动图片</title> <style type="text/css"> .dragme{position:absolute; cursor:move;width:110px;height:110px;border:#ececec 2px solid;} .imgcss{width:110px;height:110px;} .close{position:a

关于禁止图片拖动的问题

最近在做一个公司的抢红包项目,会在页面上下红包雨,玩家点击红包来玩抢红包,但是当玩家在急促的点击中很容易触发图片的拖动,而在火狐浏览下浏览器下又有默认的图片拖动手势支持,火狐一拖动图片就会在新窗口打开图片,而IE而更BT,直接打开图片下载窗口,严重影响用户体验. 一开始想用css来解决,给图片加上img{ pointer-events: none;} ,在火狐下可以解决,但是在IE下不起作用,后来几翻折腾,还是用JS来解决,给图片或者其父级都加上ondragstart="return false

html实现 页面禁止右键 禁止复制 禁止图片拖动 禁止复制和剪切

众所周知,一般的屏蔽的方法是用JS来编写的脚本,但是也可以直接通过修改网页属性的方法来屏蔽右键 禁止复制. 禁止右键 oncontextmenu="return false" 禁止复制和剪切: oncopy="return false;" oncut="return false;" 禁止复制 onselectstart="return false" 禁止图片拖动 ondragstart="return false&q

使用JavaScript判断图片是否加载完成的三种实现方式

有时需要获取图片的尺寸,这需要在图片加载完成以后才可以.有三种方式实现,下面一一介绍. 一.load事件 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>img - load event</title> </head> <body> <img id="img1" src="http:/

Javascript 将图片的绝对路径转换为base64编码

Javascript将图片的绝对路径转换为base64编码 我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码:在这我们引用的是淘宝首页一张图片如下: var img = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg"; 我们如下编写代码: function getBase64Image(img) { var canvas = document.create

javascript实现图片无缝滚动-------Day 27

今天感冒变严重了,鼻涕止不住啊,一卷卫生纸就这样报废了,还是不想吃药,熬熬总能熬过去吧,状态不是很好,看这么个小应用竟然看了很久的时间,到最后才像猛的明白了一样,而且查着好像有好几种做法的,今天先说说这种吧,比较好理解额. 所谓"图片无缝滚动",我们可以这样来理解,如果只用marquee,则需要尾部也离开容器了,头部才能从头部另一端出现,重新进行滚动,如是进行循环,而无缝滚动,就是说一种首尾相连的效果,头部是咬在尾部上的,尾部全部漏出来后,后面紧挨着显示头部的部分,这样首尾相连进行的滚

JavaScript判断图片是否加载完成

一.load事件 <!DOCTYPE HTML><html> <head>     <meta charset="utf-8">    <title>img - load event</title></head> <body>    <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb

JavaScript判断图片是否加载完成的三种方式

一.load事件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE HTML> <html> <head>     <meta charset="utf-8">     <title>img - load event</title> </head> <body>     <img id="img1" src=&qu