鼠标在网页上的拖动效果

使用JavaScript写的鼠标拖动效果

    近日项目中要做一个鼠标拖拽层的效果,于是手动使用Jquery做了一个,发出来跟大伙儿分享一下,并希望能得到高手的指点,如果哪位大侠觉得我的思路和代码不正确或者需要改进的话,希望能指点一二,在下感激不尽。


 

效果展示


 

下面是我的源代码

 
   
<html>
    <head>
        <style>
            div{
                width:200px;
                height:200px;
                background-color:red;
                position:absolute;
            }
        </style>
        <script>
            function getPos(ev){
                var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;    
//                为了实现兼容性按道理来说在网页的头部加上<!DOCTYPE html>之后,只是用document.documentElement.scrollTop这个就可以了,但是谷歌
//                浏览器却不支持这个,而是支持document.body.scrollTop。由于任何一种浏览器只支持其中的一个,所以两个相加就实现了兼容性了
                var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;
                return {x: ev.clientX+scrollLeft, y: ev.clientY+scrollTop};
//                scrollLeft:页面利用滚动条滚动到右侧时,隐藏在滚动条左侧的页面的宽度
//                clientLeft:就是透过浏览器看内容的这个区域左边的宽度
            }
            document.onmousemove=function (ev){
                var aDiv=document.getElementsByTagName('div');
                var oEvent=ev||event;    
//                这一句这么写是要兼容各个浏览器,兼容IE和FireFox Chrome 只要一个为真就可以执行,在FireFox浏览器中,
//                事件绑定的函数要获取到事件本身,需要从函数中传入,而IE等浏览器则可以直接使用event或者window.event得到事件本身
                var pos=getPos(oEvent);
                for(var i=aDiv.length-1;i>0;i--){
                    aDiv[i].style.left=aDiv[i-1].offsetLeft+'px';
//                    获取的是相对于父对象的左边距,可以判断一个物体的跟document的左边距离,也就是浏览器左边缘
                    aDiv[i].style.top=aDiv[i-1].offsetTop+'px';
                }
                aDiv[0].style.left=pos.x+'px';
                aDiv[0].style.top=pos.y+'px'; 
            }
        </script>
    </head>
    <body>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
        <div><img src="images/3.jpg"></div>
                                                      
    </body>
</html>
 
   

 

 
  

 

  通过演示,鼠标移动onmousemover 的情况下,div会随着移动有一个重影效果。在body范围内可以随意拖动,代码注释难以理解的话,请上网搜索相关知识,希望能帮到你。

转载于:https://www.cnblogs.com/huanghundaxia/p/5666324.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值