用js拖拽div

ゝ一纸荒年。 2022-11-29 14:30 355阅读 0赞

描述:
拖拽div元素,主要用到以下三个事件
onmousedown
onmousemove
onmouseup
当拖拽网页中的内容时,浏览器会默认搜索引擎进行搜索,
如果取消该行为,可返回return false,但IE8不行
setCapture();可对事件进行捕获,当调用该方法是,该元素会把下一次的所有相关事件都揽在自身上,该方法只在IE中执行
js代码:

  1. <script type="text/javascript">
  2. window.onload = function(){
  3. /*拖拽div元素
  4. onmousedown
  5. onmousemove
  6. onmouseup
  7. * */
  8. var box12 = document.getElementById("box12");
  9. drag(box12);
  10. function drag(obj){
  11. obj.onmousedown = function(event){
  12. if(obj.setCapture){
  13. obj.setCapture();
  14. }
  15. //obj.setCapture && obj.setCapture();
  16. event = event || window.event;
  17. var x = event.clientX-obj.offsetLeft;
  18. var y = event.clientY- obj.offsetTop;
  19. var sl = document.body.scrollLeft || document.documentElement.scrollLeft;
  20. var st = document.body.scrollTop || document.documentElement.scrollTop;
  21. document.onmousemove=function(event){
  22. event = event || window.event;
  23. var left = event.clientX;
  24. var top = event.clientY;
  25. obj.style.left = left-x+sl+"px";
  26. obj.style.top = top-y+st+"px";
  27. };
  28. document.onmouseup=function(){
  29. document.onmousemove = null;
  30. document.onmouseup = null;
  31. //鼠标松开时取消捕获
  32. obj.releaseCapture && obj.releaseCapture();
  33. };
  34. /*
  35. 当拖拽网页中的内容时,浏览器会默认搜索引擎进行搜索,
  36. 如果取消该行为,可返回return false,但IE8不行
  37. setCapture();可对事件进行捕获,当调用该方法是,该元素会把下一次
  38. 的所有相关事件都揽在自身上,该方法只在IE中执行
  39. * */
  40. return false;
  41. };
  42. };
  43. }
  44. </script>

发表评论

表情:
评论列表 (有 0 条评论,355人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js

    拖拽使用的三个事件 onmousedown //鼠标按下 onmousemove //鼠标移动 onmouseup //鼠标抬起

    相关 JS

    实现后效果 ![70][] 实现原理: 1. 在允许拖拽的节点元素上,监听mousedown(按下鼠标按钮)事件,鼠标按下后,事件触发 2. 监听mousemov