zoukankan      html  css  js  c++  java
  • 放大镜/鼠标移入放大

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>放大镜</title>
    </head>
    <style>
    .box{
        width: 300px;
        height: 300px;
        position: absolute;
        top: 0;
        left: 0;
    }
    .box img{
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
    }
    .box1{
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        z-index: 99;
    }
    .hand{
        width: 100px;
        height: 100px;
        background: rgba(0, 0, 100, 0.6);
        position: absolute;
        left: 0;
        top: 0;
        display: none;
    }
    .bigbox{
        width: 300px;
        height: 300px;
        position: absolute;
        top: 0;
        left: 303px;
        overflow: hidden;
    }
    .bigbox img{
        display: none;
    
        position: absolute;
        left: 0;
        top: 0;
        width: 900px;
        height: 900px;
    }
    </style>
    <body>
        <div class="box">
            <img src="jujingyi.jpg" alt="">
            <div class="box1"></div>
            <div class="hand"></div>
        </div>
        <div class="bigbox">
            <img src="jujingyi.jpg" alt="">
        </div>
    </body>
    </html>
    <script>
                let box=document.querySelector(".box");
                let box1=document.querySelector(".box1");
                let hand=document.querySelector(".hand");
                let bigbox=document.querySelector(".bigbox img");
                box.onmouseenter=function(){   //鼠标移入抓手(蓝色)和右边图片显示
                hand.style.display="block";
                bigbox.style.display="block";
                box1.onmousemove=function(event){//事件移动
                let x0=hand.offsetWidth/2;   //鼠标距离抓手hand的边框距离中心
                let y0=hand.offsetHeight/2; 
                let x1=event.clientX;   //鼠标距离页面左边的距离
                let y1=event.clientY;//鼠标距离页面上面的距离
                let left=x1-x0;   //抓手盒子距离页面左边的距离
                let top=y1-y0;//抓手盒子距离页面右边的距离
                    if(left<0){   //判断条件  使抓手盒子不离开放图片的盒子
                        left=0;
                    }
                    if(top<0){
                        top=0;
                    }
                    if(top>200){
                        top=200;
                    }
                    if(left>200){
                        left=200
                    }
                    hand.style.left=left+"px";   //抓手盒子随鼠标移动的位置
                    hand.style.top=top+"px";
                    bigbox.style.left=-left*3+"px";   //右边图片放大三倍随鼠标移动实时变化
                    bigbox.style.top=-top*3+"px";
                }
                }
                box.onmouseleave=function(){   //鼠标离开左边放图片的盒子  抓手和右边放大图片都消失
                    hand.style.display="none";  
                    bigbox.style.display="none";
                }
    </script>
  • 相关阅读:
    UML类关系:依赖、关联、聚合、组合(收藏)
    java常用设计模式八:代理模式
    java常用设计模式三:原型模式
    java常用设计模式总览
    java常用设计模式七:装饰模式
    java常用设计模式六:适配器模式
    Sword C语言原子操作
    C语言 宽字符串
    C语言 字符串切割
    C语言 sscanf函数补充
  • 原文地址:https://www.cnblogs.com/aloneindefeat/p/10552038.html
Copyright © 2011-2022 走看看