zoukankan      html  css  js  c++  java
  • 放大镜效果

    放大镜效果

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <title>放大镜效果</title>
     5     <style type="text/css">
     6         .samllImg{
     7             position: relative;
     8              215px;
     9             height: 215px;
    10         }
    11         .samllImg img{
    12             215px;
    13             height: 215px;
    14         }
    15         .samllImg span{
    16             display: none;
    17             107.5px;
    18             height:107.5px;
    19             position: absolute;
    20             top:0px;
    21             left:0px;
    22             background-color: rgba(100,100,10,0.3);;
    23         }
    24         .bigImg{
    25             display: none;
    26              215px;
    27             height: 215px;
    28             background-image: url("image/0.jpg");
    29             background-repeat: no-repeat;
    30             position: absolute;
    31             left:225px;
    32             top:0
    33         }
    34     </style>
    35 </head>
    36 <body>
    37     <div class="samllImg">
    38         <img src="image/0.jpg">
    39         <span class="cover"></span>
    40         <div class="bigImg"></div>
    41     </div>
    42     <script type="text/javascript">
    43         window.onload = function(){
    44             // 通过类名获取元素
    45             function $(className) {
    46                 return document.getElementsByClassName(className)[0];
    47             }
    48             // 放大镜效果
    49             function magnifier(small_img,cover,big_img) {
    50                 $(small_img).onmouseover= function(){
    51                     $(cover).style.display="block";
    52                     $(big_img).style.display="block";
    53                     $(small_img).onmousemove = function(e) {
    54                         e = e || event; //浏览器兼容
    55                         let left = e.pageX-$(small_img).offsetLeft-$(cover).offsetWidth*0.5;
    56                         let top = e.pageY-$(small_img).offsetTop-$(cover).offsetHeight*0.5;
    57                         left = left<=0?0:(left>$(small_img).offsetWidth-$(cover).offsetWidth+$(small_img).offsetLeft?$(small_img).offsetWidth-$(cover).offsetWidth:left);
    58                         top = top<=0?0:(top>$(small_img).offsetHeight-$(cover).offsetHeight+$(small_img).offsetTop?$(small_img).offsetHeight-$(cover).offsetHeight:top);
    59                         $(cover).style.left = left + "px";
    60                         $(cover).style.top = top + "px";
    61                         let leftPos = left/$(small_img).offsetWidth*430;
    62                         let topPos = top/$(small_img).offsetHeight*430;
    63                         $(big_img).style.backgroundPosition=`${-leftPos}px ${-topPos}px`;
    64                     }
    65                 }
    66                 $(small_img).onmouseout = function() {
    67                     $(cover).style.display="none";
    68                     $(big_img).style.display="none";
    69                 }
    70             }
    71             magnifier("samllImg","cover","bigImg");
    72         }
    73         // 考虑一个问题:如果图片像素和盒子模型的大小不一致时,如何实现效果?(暂时还未实现)
    74     </script>
    75 </body>
    76 </html>
  • 相关阅读:
    手动创建分区以及软硬raid的问题
    实用小工具:VNC的安装
    安装使用xen虚拟化工具
    使用vsftp与shell实现对进程与服务状态的监控
    windows server2008下搭建ftp服务
    业界虚拟化技术分析
    Android命名规范(自定义)
    Android Paint和Color类
    Android 应用中十大常见 UX 错误
    漫谈互联网产品设计之人性的弱点,你躺枪了木有?
  • 原文地址:https://www.cnblogs.com/shannen/p/14054844.html
Copyright © 2011-2022 走看看