6.放大镜.html 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. #container {
  13. /* overflow: auto; */
  14. position: relative;
  15. }
  16. #small {
  17. width: 400px;
  18. height: 400px;
  19. position: relative;
  20. /* float: left; */
  21. }
  22. #drag {
  23. width: 200px;
  24. height: 200px;
  25. background: rgba(0, 0, 0, .3);
  26. display: none;
  27. position: absolute;
  28. top: 0;
  29. left: 0;
  30. }
  31. #big {
  32. /* float: left; */
  33. position: absolute;
  34. top: 0;
  35. left: 400px;
  36. width: 400px;
  37. height: 400px;
  38. overflow: hidden;
  39. display: none;
  40. }
  41. #bigImg {
  42. position: absolute;
  43. }
  44. </style>
  45. </head>
  46. <body>
  47. <div id="container">
  48. <div id="small">
  49. <img src="../image/6.jpg" alt="">
  50. <div id="drag"></div>
  51. </div>
  52. <div id="big">
  53. <img src="../image/7.jpg" alt="" id="bigImg">
  54. </div>
  55. </div>
  56. <script src="../js/6.放大镜.js"></script>
  57. <!--
  58. 排版:遮罩隐藏 大盒子隐藏
  59. 获取操作元素=> 小盒子、遮罩层、大盒子、大图片;
  60. 鼠标移入 :遮罩显示 大盒子显示
  61. 鼠标移出: 遮罩隐藏 大盒子隐藏
  62. 鼠标移动:
  63. 1.先求出鼠标在遮罩层距离盒子的距离(鼠标是在遮罩层中心点);
  64. 2.遮罩层移动赋值;
  65. 3.处理遮罩层超出距离;
  66. 4.先处理遮罩层左侧和上侧的超出问题
  67. 5.在求出遮罩层在小盒子所移动的最大距离
  68. 6.在处理遮罩层右侧和下方的超出问题
  69. 7.求比例 遮罩层元素移动距离 / 遮罩层所能移动的最大距离
  70. 8.再求出大图可以移动的最大距离
  71. 9.给大图设置位置:-大图可移动距离 * 移动比例 + 'px'
  72. -->
  73. </body>
  74. </html>