练习9_DOM放大镜.html 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <style>
  8. *{
  9. margin: 0;
  10. padding: 0;
  11. }
  12. .small-img{
  13. width: 400px;
  14. height: 400px;
  15. position: relative;
  16. float: left;
  17. }
  18. .small-img img{
  19. width: 100%;
  20. height: 100%;
  21. }
  22. .small-img .mask{
  23. width: 200px;
  24. height: 200px;
  25. background-color: rgba(255,255,255,0.5);
  26. position: absolute;
  27. top: 0;
  28. left: 0;
  29. }
  30. .big-img{
  31. width: 400px;
  32. height: 400px;
  33. float: left;
  34. overflow: hidden;
  35. margin-left: 20px;
  36. position: relative;
  37. }
  38. .big-img img{
  39. width: 800px;
  40. height: 800px;
  41. position: absolute;
  42. }
  43. </style>
  44. </head>
  45. <body>
  46. <div class="container">
  47. <div class="small-img">
  48. <img src="./image/niu.png" alt="img">
  49. <div class="mask"></div>
  50. </div>
  51. <div class="big-img">
  52. <img id="big-bg" src="./image/niu.png" alt="img">
  53. </div>
  54. </div>
  55. <script>
  56. // 第一步获取元素
  57. // 获取小图内的透明蒙版
  58. var oMask = document.getElementsByClassName("mask");
  59. oMask = oMask[0];
  60. // 获取小图区域
  61. var oSmallImg = document.getElementsByClassName("small-img");
  62. oSmallImg = oSmallImg[0];
  63. // 获取大图片
  64. // var oBigImg = document.getElementsByClassName("big-img");
  65. // oBigImg = oBigImg[0];
  66. var oBigImg = document.getElementById("big-bg");
  67. // 第二步给小图区域绑定鼠标移动事件
  68. oSmallImg.onmousemove = function(e){
  69. var x = e.clientX-100;
  70. var y = e.clientY-100;
  71. // 判断蒙版是否越界
  72. if(x>200){
  73. x = 200
  74. }
  75. if(y>200){
  76. y = 200
  77. }
  78. if(x<0){
  79. x=0
  80. }
  81. if(y<0){
  82. y=0
  83. }
  84. // 设置半透明蒙版的位置
  85. oMask.style.left = x + "px";
  86. oMask.style.top = y + "px";
  87. // 控制大图的移动
  88. oBigImg.style.left = (-2*x) + "px";
  89. oBigImg.style.top = (-2*y) + "px";
  90. }
  91. </script>
  92. </body>
  93. </html>