美文网首页Css
PC端图片放大镜效果

PC端图片放大镜效果

作者: ada_e172 | 来源:发表于2021-03-09 14:45 被阅读0次

先看效果


录制_2021_03_09_14_29_49_851.gif

鼠标放到图片上,右边会显示鼠标停留处的放大效果。商城之类的网站还是经常会用到的,有兴趣的同学可以看下。如果使用vue或react,可以考虑封装成组件调用,更加方便些。

Html
<div class="ks-image" @mousemove="onMouseOver" id="imgObj">
     <img src='./images/food.jpg' alt="" width="100%"/>
    <span class="ks-imagezoom-lens" id="imgMask"/>
</div>
<div class="ks-overlay ks-imagezoom-viewer ks-overlay-hidden">
    <img src='./images/food.jpg' id='bigImageObj'/>
</div>
Js
onMouseOver(event) {
        const imgObj = document.getElementById("imgObj");
        const imgMask = document.getElementById("imgMask");
        const bigImageObj = document.getElementById("bigImageObj");

        let x = event.clientX - (imgObj.offsetParent.offsetLeft + imgObj.offsetLeft);//减去元素相对于窗口的X轴距离
        let y = event.clientY - (imgObj.offsetParent.offsetTop + imgObj.offsetTop);//减去元素相对于窗口的Y轴距离

        if (x - imgMask.offsetWidth / 2 >= 0 && x + imgMask.offsetWidth / 2 <= imgObj.offsetWidth) {
          imgMask.style.left = (x - imgMask.offsetWidth / 2) + 'px';
          bigImageObj.style.left = -(x - imgMask.offsetWidth / 2) + 'px';
        }

        if (y - imgMask.offsetHeight / 2 >= 0 && y + imgMask.offsetHeight / 2 <= imgObj.offsetHeight) {
          imgMask.style.top = (y - imgMask.offsetHeight / 2) + 'px';
          bigImageObj.style.top = -(y - imgMask.offsetHeight / 2) + 'px';
        }
      }
Css
.ks-image {
        position: relative;
        overflow: hidden;
        width: 358px;
        height: 358px;

        .ks-imagezoom-lens {
            position: absolute;
            display: none;
            background: url("./images/ks-imagezoom-mask.png") repeat scroll 0 0 transparent;
            cursor: move;
            z-index: 1;
            font-size: 0;
            width: 100px;
            height: 100px;
        }

        &:hover {
            .ks-imagezoom-lens {
                display: block;
            }

            & + .ks-imagezoom-viewer {
                display: block;
            }
        }

        & + .ks-imagezoom-viewer {
            display: none;
            position: absolute;
            left: 400px;
            top: 30px;
            width: 358px;
            height: 358px;
            overflow: hidden;
            z-index: 9;

            img {
                width: 800px !important;
                height: 800px !important;
                position: absolute
            }
        }
    }
动动小手,给我点个赞吧.png

相关文章

  • PC端图片放大镜效果

    先看效果 鼠标放到图片上,右边会显示鼠标停留处的放大效果。商城之类的网站还是经常会用到的,有兴趣的同学可以看下。如...

  • 放大镜的设计与实现

    喜欢购物的童鞋会发现,PC端的电商详情页总喜欢用一个放大镜的效果来实现顾客查看图片的细节,貌似很好玩,业余时间来给...

  • Hexo+GitHub+阿里域名搭建自己博客

    效果 博客的地址:我的博客PC端的效果PC端的效果手机端效果手机端效果一 最近抽空终于搭建完成,网上的资料很多,这...

  • 实现图片的切换

    pc端,实现简单图片切换在App中这种效果比较常见,两种效果的切换。html页面 js页面

  • “返回顶部”按钮效果

    “返回顶部”按钮效果 pc端: M移动端:

  • 2019-09-27

    图片大小自适应、pc端、手机端图片适应手机端 要控制的是装图片的容器宽度 img{display: block;...

  • 图片放大镜效果

  • website-bug-video

    Bug:网页PC端和移动端背景不同; PC端背景为视频,移动端背景为图片切换动画。从手机上某个app上点击网址打开...

  • JS移动客户端--触屏滑动事件

    移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成。但是...

  • 弹性布局和实现多边形以及等比缩放

    首先看效果图 PC端效果: 手机端【ios6/7/8/x】效果: iPad上的效果图: iPad Pro上的效果图...

网友评论

    本文标题:PC端图片放大镜效果

    本文链接:https://www.haomeiwen.com/subject/vufbqltx.html