js实现购物网站放大镜功能

 更新时间:2021年06月30日 10:45:02   作者:404BAI  
这篇文章主要为大家详细介绍了js实现购物网站放大镜功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了js实现购物网站放大镜功能的具体代码,供大家参考,具体内容如下

首先看效果图:

先是布局,左边一个小图框,包含一个鼠标移动框,右边一个放大框。

<div class="box">
        <div class="small">
            <img src="small3.jpg" alt="">
            <div class="move"></div>
        </div>
        <div class="big">
            <img src="big3.jpg" alt="">
        </div>
</div>

写一下css

.small{
    position: relative;
    float: left;
    width: 450px;
    height: 450px;
    border:1px solid #000;
}
.small .move{
    position: absolute;
    top:0;
    width: 300px;
    height: 300px;
    background-color: rgba(0,0,0,0.4);
    cursor:move;
    display: none;
}
.big{
    position: relative;
    float: left;
    width: 540px;
    height: 540px;
    margin-left: 20px;
    overflow: hidden;
    border:1px solid #000;
    display: none;
}
.big img{
    position: absolute;
    top:0;
    left: 0;
}

js部分:

var box=document.getElementsByClassName('box')[0],small=box.getElementsByClassName('small')[0],move=small.getElementsByClassName('move')[0],smallImg=small.getElementsByTagName('img')[0],big=box.getElementsByClassName('big')[0],bigImg=big.getElementsByTagName('img')[0];
    //首先把需要的元素都获取出来
    small.onmouseover=function(){
        move.style.display='block';
        big.style.display="block";
    };
    small.onmouseout=function(){
        move.style.display='none';
        big.style.display="none";
    };
    small.onmousemove=function(e){
        e=e||window.event;//兼容性考虑
        var x=e.clientX-smallImg.getBoundingClientRect().left-move.offsetWidth/2;
        var y=e.clientY-smallImg.getBoundingClientRect().top-move.offsetHeight/2;
        if(x<0){
            x=0;
        }
        if(x>smallImg.offsetWidth-move.offsetWidth){
            x=smallImg.offsetWidth-move.offsetWidth;
        }
        if(y<0){
            y=0;
        }
        if(y>smallImg.offsetHeight-move.offsetHeight){
            y=smallImg.offsetHeight-move.offsetHeight;
        }
        move.style.left=x+"px";
        move.style.top=y+"px";
        //实现左边move块跟随鼠标移动的代码
        var scale=bigImg.offsetWidth/smallImg.offsetWidth;
        //按照比例放大
        bigImg.style.left='-'+x*scale+'px';
        //因为图片是需要左移和上移的所以要加负号
        bigImg.style.top='-'+y*scale+'px';
    }

放大镜效果就实现啦!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • openlayers 3实现车辆轨迹回放

    openlayers 3实现车辆轨迹回放

    这篇文章主要为大家详细介绍了openlayers 3实现车辆轨迹回放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • JavaScript中setInterval()和setTimeout()的用法及区别

    JavaScript中setInterval()和setTimeout()的用法及区别

    这篇文章主要给大家介绍了关于JavaScript中setInterval()和setTimeout()用法及区别的相关资料,Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,需要的朋友可以参考下
    2023-11-11
  • JS实现访问DOM对象指定节点的方法示例

    JS实现访问DOM对象指定节点的方法示例

    这篇文章主要介绍了JS实现访问DOM对象指定节点的方法,结合实例形式分析了javascript针对DOM元素节点属性相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • js学习总结之DOM2兼容处理this问题的解决方法

    js学习总结之DOM2兼容处理this问题的解决方法

    这篇文章主要为大家详细介绍了js学习总结之DOM2兼容处理this问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • javascript实现日期时间动态显示示例代码

    javascript实现日期时间动态显示示例代码

    这篇文章主要介绍了javascript实现日期时间动态显示示例代码,页面动态显示时间变化的方法有很多,本文为大家介绍下使用javascript的具体实现,感兴趣的朋友可以参考一下
    2015-09-09
  • 微信小程序接入vant Weapp组件的详细步骤

    微信小程序接入vant Weapp组件的详细步骤

    这篇文章主要介绍了微信小程序接入vant Weapp组件的详细步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • JS封装cavans多种滤镜组件

    JS封装cavans多种滤镜组件

    这篇文章主要介绍了JS封装cavans多种滤镜组件,本文主要是讲解图片滤镜的效果以及实现思路,如需更多的滤镜效果可以研究算法或者参考其他的一些开源库glfx.js、lena.js等等,需要的朋友可以参考下
    2022-02-02
  • js模拟点击事件实现代码

    js模拟点击事件实现代码

    在实际的应用开发中,我们会常常用到JS的模事件,比如说点击事件,举个简单的例子,点击表单外的“提交”按钮来提交表单。上代码吧
    2012-11-11
  • javascript结合CSS实现苹果开关按钮特效

    javascript结合CSS实现苹果开关按钮特效

    这篇文章主要介绍了javascript结合CSS实现苹果开关按钮特效的方法以及全部代码,效果非常不错,兼容性也很好,有需要的小伙伴自己参考下
    2015-04-04
  • 浏览器脚本兼容 文本框中,回车键触发事件的兼容

    浏览器脚本兼容 文本框中,回车键触发事件的兼容

    在文本框中输入完内容后,经常需要按回车,焦点跳到下个文本框,或者触发按钮事件
    2010-06-06

最新评论