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

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8"/>
        <title>放大镜</title>
    </head>
    <style type="text/css">
        *{
            padding: 0;
            margin: 0;
        }
        .open{
             350px;
            height: 350px;
            position: relative;
        }
        .small{
             350px;
            height: 350px;
            border: 1px solid black;
            overflow: hidden;
            cursor: move;
            
        }
        .small img{
             350px;
            height: 350px;
        }
        img{
            border: none;
            border: 0;
        }
        a img{
            border: none;
            border:0;
        }
        .big{
             350px;
            height: 350px;
            border: 1px solid black;
            position: absolute;
            left: 354px;
            top: 0;
            display: none;
            overflow: hidden;
        }
        .big img{
             800px;
            position: absolute;
            top: 0;
            left: 0;
        }
        .mask{
             150px;
            height: 150px;
            background: rgba(0,0,255,0.2);
            position: absolute;
            top: 0;
            left: 0;
            display: none;
        }
    </style>
    <body>
        <div class="open">
            <div class="small">
                <img src="img/small.jpg"/>
                <div class="mask"></div>
            </div>
            <div class="big">
                <img src="img/big.jpg"/>
            </div>
        </div>
    </body>
    <script type="text/javascript">
        // window.onload = function(){}预加载
        window.onload = function(){
            var small = document.querySelector('.small');
            var mask = document.querySelector('.mask');
            var big = document.querySelector('.big');
            // 鼠标触摸小图标,蒙版和放大效果出现
            small.onmouseover = function(){
                mask.style.display = 'block';
                big.style.display = 'block';
            }
            // 鼠标一开,蒙版,放大效果消失
            small.onmouseout = function(){
                mask.style.display = 'none';
                big.style.display = 'none';
            }
            // 小图标移动事件
            small.onmousemove  =function(event){
                var oEvent = event || window.event;
                // event||window.event兼容IE
                var x = oEvent.clientX;
                var y = oEvent.clientY;
                var minX = x - mask.offsetWidth/2;
                var minY = y - mask.offsetHeight/2;
                if (x <=mask.offsetWidth/2) {
                    minX = 0;
                }else if(x >= small.offsetWidth - mask.offsetWidth/2){
                    minX = small.offsetWidth - mask.offsetWidth;
                }
                if (y <= mask.offsetHeight/2) {
                    minY = 0;
                }else if(y >= small.offsetHeight - mask.offsetHeight/2){
                    minY =small.offsetHeight -mask.offsetHeight;
                }
                
                // 蒙版在small里面的位置
                mask.style.left = minX +'px';
                mask.style.top = minY +'px';
                var bigImg = document.querySelector('.big img');
                var ratioX = minX/(small.offsetWidth - mask.offsetWidth);
                var ratioY = minY/(small.offsetHeight - mask.offsetHeight);
                
                bigImg.style.left = -ratioX *(bigImg.offsetWidth-big.offsetWidth) +'px';
                bigImg.style.top = -ratioY*(bigImg.offsetHeight-big.offsetHeight)+'px';
            }
        }
        
    </script>
    </html>
  • 相关阅读:
    postgresql查询栅格数据范围(extent)
    raster导入postgres Windows命令
    Python使用XML操作mapnik,实现复杂标注(Multi line text symbolizer)
    Leaflet使用vector tiles 标注label设置
    Leaflet使用vector tiles样式设置
    Leaflet调用geoserver发布的矢量切片
    java 生成透明背景图片
    java 用RGB生成图片动态命名
    POI拆分单元格,并设置拆分后第一个cell的值为空cell的值
    洛谷 P1003 铺地毯 题解
  • 原文地址:https://www.cnblogs.com/lin-f/p/5854479.html
Copyright © 2011-2022 走看看