01.练习-div跟随鼠标移动.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. #box1{
  10. width: 100px;
  11. height: 100px;
  12. background-color: red;
  13. /*
  14. 开启box1的绝对定位
  15. */
  16. position: absolute;
  17. }
  18. </style>
  19. <script>
  20. window.onload = function(){
  21. /**
  22. * 使div可以跟随鼠标移动
  23. */
  24. //获取box1
  25. var box1 = document.getElementById("box1");
  26. //绑定鼠标操作事件
  27. /**
  28. * 不能绑定给box1,如果是绑定给box1,只能向一个方向移动,
  29. * 因为绑定给box1,就意味着只有当鼠标在box1内部时才起作用,
  30. * 当鼠标移出box1时就不起作用了
  31. */
  32. document.onmousemove = function(event){
  33. // alert(123);
  34. //解决兼容问题
  35. event = event || window.event;
  36. //获取到鼠标的坐标
  37. /**
  38. * clientX和clientY
  39. * 用于获取鼠标在当前的可见窗口的坐标
  40. * div的偏移量,是相对于整个页面的
  41. *
  42. * pageX和pageY可以获取鼠标相对于当前页面的坐标
  43. * 但是这两个属性在IE8中不支持,所以如果需要兼容IE8,则不要使用
  44. */
  45. var left = event.pageX;
  46. var top = event.pageY;
  47. //设置div的偏移量
  48. box1.style.left = left+"px";
  49. box1.style.top = top+"px";
  50. };
  51. //取消冒泡
  52. var box2 = document.getElementById("box2");
  53. box2.onmousemove = function(event){
  54. event = event || window.event;
  55. event.cancelBubble = true;
  56. }
  57. };
  58. // window.onload = function(){
  59. // /**
  60. // * 使div可以跟随鼠标移动
  61. // */
  62. // //获取box1
  63. // var box1 = document.getElementById("box1");
  64. // //绑定鼠标操作事件
  65. // /**
  66. // * 不能绑定给box1,如果是绑定给box1,只能向一个方向移动,
  67. // * 因为绑定给box1,就意味着只有当鼠标在box1内部时才起作用,
  68. // * 当鼠标移出box1时就不起作用了
  69. // */
  70. // document.onmousemove = function(event){
  71. // // alert(123);
  72. // //解决兼容问题
  73. // event = event || window.event;
  74. // //获取滚动条滚动的距离
  75. /**
  76. * chrome认为浏览器的滚动条是body的,可以通过body.scrollTop来获取
  77. * 火狐等浏览器认为浏览器的滚动条是html的
  78. */
  79. // //var st = document.body.scrollTop;
  80. //var st = document.documentElement.scrollTop;
  81. // var st = document.body.scrollTop || document.documentElement.scrollTop;
  82. // var sl = document.body.scrollLeft || document.documentElement.scrollLeft;
  83. // //获取到鼠标的坐标
  84. // /**
  85. // * clientX和clientY
  86. // * 用于获取鼠标在当前的可见窗口的坐标
  87. // * div的偏移量,是相对于整个页面的
  88. // *
  89. // * pageX和pageY可以获取鼠标相对于当前页面的坐标
  90. // * 但是这两个属性在IE8中不支持,所以如果需要兼容IE8,则不要使用
  91. // */
  92. // var left = event.clientX;
  93. // var top = event.clientY;
  94. // //设置div的偏移量
  95. // box1.style.left = left+sl+"px";
  96. // box1.style.top = top+st+"px";
  97. // };
  98. // };
  99. </script>
  100. </head>
  101. <body style="height: 1000px;width: 2000px;">
  102. <div id="box2" style="width: 500px; height: 500px; background-color: #bfa;"></div>
  103. <div id="box1"></div>
  104. </body>
  105. </html>