美文网首页
js仿照淘宝的放大镜功能

js仿照淘宝的放大镜功能

作者: 江疏影子 | 来源:发表于2019-01-26 15:22 被阅读0次
HTML代码
    <div id="box" style="display: flex">
        <div id="left">
            <img src="img/timg.jpg"/>
            <div id="square" style="display: none"></div>
        </div>
        <div id="right" style="display: none">
            <img src="img/timg.jpg" >
        </div>
    </div>
CSS代码
        *{
            margin: 0;
            padding: 0;
        }
        img{
            display: block;
            width: 100%;
            height: 100%;
        }
        #left{
            width: 540px;
            height: 360px;
            margin: 30px 0 0 50px;
            position: relative;
        }
        #square{
            width: 270px;
            height: 180px;
            background: rgba(0,0,0,0.2);
            position: absolute;
            left: 0;
            top: 0;
        }
        #right{
            width: 540px;
            height: 360px;
            overflow: hidden;
            margin: 30px 0 0 50px;
            position: relative;
            border: 1px solid red;
        }
        #right img{
            width: 1080px;
            height: 720px;
            position: absolute;
            left: 0;
            top: 0;
        }
JS代码
           $(document).ready(function(){
               var img=$('#right img');
               var times=img.width()/$('#left img').width();
               $('#left').mousemove(function(e){//e.clientX e.clientY鼠标相对于窗口左上角的位置
                   //鼠标移入的时候 方块显示出来
                   $('#square').show();
                   $('#right').show();
                   //计算鼠标在div中的距离
                   var left=e.clientX-$('#left').offset().left;
                   var top=e.clientY-$('#left').offset().top;
                   // console.log(left,top)
                   //所以正方形必须跟着鼠标在里面移动 但是必须要让正方形在鼠标的中间
                   var squareWidth=$('#square').width(),squareHeight=$('#square').height();
                   var squareLeft=$('#square').offset().left,squareTop=$('#square').offset().top;
                   $('#square').css({'top':top-(squareHeight/2)+'px','left':left-(squareWidth/2)+'px'});
                   //在这里需要判断 正方形靠近边缘的情况
                   if(left<=squareWidth/2){//代表方块已经在最左边
                       $('#square').css('left',0)
                   }
                   if(top<=squareHeight/2){//代表方块已经在最上边
                       $('#square').css('top',0)
                   }
                   if(left>$('#left').width()-(squareWidth/2)){//代表方块在最右边
                       $('#square').css('left',$('#left').width()-squareWidth+'px');
                   }
                   if(top>$('#left').height()-(squareHeight/2)){//代表方块在最下边
                       $('#square').css('top',$('#left').height()-squareHeight+'px')
                   }
                  //因为left盒子有一个margin-left和margin-top 所以导致放大镜的offset().left和top有一个margin的值
                   img.css('left',-(squareLeft-$('#left').offset().left)*times+'px')
                   img.css('top',-(squareTop-$('#left').offset().top)*times+'px')
               });
               $('#left').mouseout(function(e){
                   //鼠标移出的时候 方块隐藏
                   $('#square').hide();
                   $('#right').hide();
               })
           })

因为是按照2两倍的倍数进行放大的,所以放大镜的高度和外面盒子的1/2,外面的盒子又是放大之后图片的1/2。

相关文章

  • js仿照淘宝的放大镜功能

    HTML代码 CSS代码 JS代码 因为是按照2两倍的倍数进行放大的,所以放大镜的高度和外面盒子的1/2,外面的盒...

  • 2018-12-01

    JS实现放大镜功能 网店中的商品都能放大查看细节,这里是放大功能的简单实现。。。。 这个放大镜具有选择放大倍数的功...

  • 实现手机淘宝轮播图片放大查看

    实现淘宝的这个功能 实现功能是点击淘宝的图片可以放大,继续轮播. js+html 主要js css就不放图片了,其...

  • js 放大镜功能实现

    css index.html main.js

  • Android高德地图多边形的绘制与编辑

    最近项目中用到了一个高德地图画地块的功能,差了一下api,发现只有js有相关的方法,所以仿照js的交互方式做了一个...

  • Vue阅读App

    项目背景 最近学习Vue.js,想写个项目练练手,借助每日一文API的帮助,仿照观止开发了一个阅读App 项目功能...

  • 淘宝放大镜

    {padding: 0;margin: 0;}li{list-style...

  • 前端导航项目

    之前在学习完JS,jQuery之后试着做了一个仿照谷歌的导航项目,一些基本的功能都可以实现。也可以进行扩展,打造出...

  • Ajax小示例

    以前用的Ajax实例,以后用的时候可以仿照写 JS部分 Python代码

  • iOS OC 仿照淘宝搜索页面

    仿照淘宝搜索页面 ,写了一个搜索历史和热门搜索的页面,再次记录一下,方便以后使用。 https://github....

网友评论

      本文标题:js仿照淘宝的放大镜功能

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