鼠标在网页上的拖动效果

使用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范围内可以随意拖动,代码注释难以理解的话,请上网搜索相关知识,希望能帮到你。

时间: 2024-10-08 11:21:53

鼠标在网页上的拖动效果的相关文章

网页上的倒计时效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>jquery数字倒计时代码</title&

获取鼠标在网页上的位置以及右击事件

js写法 document.getElementById("youji").oncontextmenu=youjiEvent;//指定这个元素 给他绑定右击事件 function youjiEvent(){//鼠标右击时显示菜单 alert(item.name); return false;//屏蔽网页本身的右击效果 } jquery写法 $(function(){ $('#youji').mousedown(function(e){ if(e.which==1){ alert(&qu

怎样可以实现鼠标放在网页上的文字时,不出现I形状的标记,并且不能选则文字

css.让这部分区域的 cursor: default; 可以不显示I型的鼠标光标 不能选择文字.这个需求只能满足现代浏览器,老旧的IE8及以下的浏览器不能实现.以下上让某个div里的文字不能选中 1 2 3 4 5 6 div{     user-select: none;      -webkit-user-select: none;     -moz-user-select: none;     -ms-user-select:none; }

Web的鼠标拖动效果

以前写过一个拖动效果的Demo,拖拽元素新位置的计算是放在拖拽元素的mousemove事件中进行的.计算效率差,而且效果不好.所以一直有想怎样才能做出jquery-ui那种顺滑的拖拽效果. 其实顺滑的拖拽效果的突破口有两点: 事件捕捉要去捕捉document的鼠标位置. 使用setInterval功能计算拖拽元素的新位置. 使用jQuery,经过一些简单的重构和调试,将代码完善如下: drag.html <!DOCTYPE html> <html> <head> <

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件 引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过"我现在可以通过WebBrowser实现对各种Html元素的操控,唯独无法控制Html的上传控件",出于安全原因,IE没有对上传控件提供操控支持,这使得我们没法像控制其他控件一样用简单的代码进行赋值. 比较实际的解决方案就是模拟操作了,下面我就将演示

网页模拟QQ面板的拖动效果

博主的前端入门知识是在慕课网学的,当时有个demo,就是在网页模拟一个QQ面板的拖动效果(如图,用两个DIV代替...效果是拖动中间的DIV,整个DIV跟着移动),今天来总结记录一下. 思路是当鼠标按下时,开始计算元素距离屏幕左边缘和上边缘的距离,并同步赋予元素.这里的关键点是对于JS中元素与根元素(或者指定父级元素)的距离的运用,即offset. 首先假设外层盒子叫d1,中间盒子叫center.当鼠标在center按下时为d1添加事件: // JavaScript Document funct

简单的鼠标拖动效果

使用js实现简单的鼠标拖动效果,但此部分代码有个小小的BUG,后期改进好我会写进来,但基本的效果已经实现,请大家参考. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>鼠标移动</title> <style> #box{ width: 50px; height: 50px; position:

教你破解网页上各种限制(禁止鼠标右击复制等等)一步搞定!

有的网页防止别人直接复制盗取网页内容,设置了复制限制韩国的一些博客网站经常有这样的限制~现在我来教大家怎么用一步破解,不需要在浏览器里设置,一步搞定(博主建议:复制他人内容请注明来源,尊重他们劳动成果!) 来源: http://www.harleygwak.com/日志/教你破解网页上各种限制(禁止鼠标右击复制等等/方法:只要在浏览器地址栏输入以下内容就可以了. javascript:alert(document.onselectstart = document.onbeforecopy = d

鼠标移动链接上,滑动展开/隐藏图片效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ