放大镜

作者: 然网名并卵 | 来源:发表于2018-09-29 13:28 被阅读11次

我们在网上购买衣物的时候都会看到这么一个效果,把鼠标放在衣服上,右边会出现一个框呈放大的效果。今天就教大家如何实现!

第一步:需要准备一张400×400的原图和一张800×800的放大图,放在两个div框中,并将后者隐藏,并给他的父级设置overflow:hidden;

第二步:在原图上设置一个200×200的小div,设置为半透明、隐藏,鼠标移入的时候将其和放大图的div一起显示出来。

第三步:设置鼠标移动的时候,小div跟着一起移动,并设置范围保证它不会移出去。

第四步:最关键的部分,设置右边的大图随着鼠标在原图上面的移动而移动。详情请看代码。

html部分:

<div id="left">

<img src="img/4.4.jpg" alt=""><!--这是左边的原图-->

<span></span> <!--这是显示放大的部分-->

</div>

<div id="right">

<img src="img/8.8.jpg" alt=""><!--这是放大图-->

</div> 

CSS部分:

#left{

width:400px;

    height:400px;

    border:1px solid #ccc;

    position:absolute;

    left:50px;

    top:50px;

}

#left span{

width:200px;

    height:200px;

    background:blue;

    opacity:0.3;

    position:absolute;

    top:0;

    left:0;

    display:none;

}

#right{

width:400px;

    height:400px;

    overflow:hidden;      /*溢出的部分给它隐藏*/

    position:absolute;

    top:50px;

    left:500px;

    display:none;

}

#right img{

position:absolute;    /*因为放大图要不停移动,所以要加定位*/

    left:0;

    top:0;

}

JS部分:

var oLeft=document.getElementById('left');

var oRight=document.getElementById('right');

var oSpan=document.querySelector('#left span');

var oImg=document.querySelector('#right img');

oLeft.onmouseover=function () {

oSpan.style.display='block';

    oRight.style.display='block';

}

oLeft.onmouseout=function () {

oSpan.style.display='none';

    oRight.style.display='none';

}

oLeft.onmousemove=function (ev) {

var l=ev.clientX-oSpan.offsetWidth/2-oLeft.offsetLeft;

    var t=ev.clientY-oSpan.offsetHeight/2-oLeft.offsetTop;

    if(l<0){

l=0;

    }else if(l>=oLeft.offsetWidth-oSpan.offsetWidth){

l=oLeft.offsetWidth-oSpan.offsetWidth;

    }

if(t<0){

t=0;

    }else if(t>=oLeft.offsetHeight-oSpan.offsetHeight){

t=oLeft.offsetHeight-oSpan.offsetHeight;

    }

oSpan.style.left=l+'px';      

    oSpan.style.top=t+'px';

    oImg.style.left=-oSpan.offsetLeft*(oImg.offsetWidth-oRight.offsetWidth)/(oLeft.offsetWidth-oSpan.offsetWidth)+'px';

    oImg.style.top=-oSpan.offsetTop*(oImg.offsetHeight-oRight.offsetHeight)/(oLeft.offsetHeight-oSpan.offsetHeight)+'px';

}

相关文章

  • iOS放大镜效果实现-ASMagnifierManger

    ASMagnifierManger 放大镜效果。可更改放大倍数和放大镜大小 特点介绍 放大镜效果 放大镜形状自定义...

  • 2018-12-02

    放大镜 HTML 放大镜 ...

  • 放大镜

    一、多种图片放大镜 二、单张图片放大镜

  • 2018-06-09

    对待学生要用“放大镜”“反光镜”和“显微镜” 教师对待学生要用“放大镜”“反光镜”和“显微镜”。“放大镜”---...

  • 涓涓说(20220522)

    【放大镜】 涓涓:妈妈,放大镜是不是凹凸镜? 妈妈:(不确定地)是吧。 涓涓:那为什么地球仪上的放大镜是平面的? ...

  • 放大镜

    我用放大镜寻找快乐 点滴的快乐瞬间填满心房 我用放大镜寻找幸福 涓涓幸福的细流变成辽阔海洋 我用放大镜寻找希望 迷...

  • 自己看自己,总会带着放大镜

    这个放大镜,要看放大倍数多高,以及使用放大镜的频次。 放大镜是用来给自己复盘的,工作中,比自己级别的高的领导突然问...

  • 放大镜的写法

    放大镜的难点:

  • 父母的爱情小故事1

    母亲认真举着放大镜看数据, 父亲路过,乐颠颠的开玩笑:放大镜举起来看看你的牛蛋眼。 母亲反手把放大镜举高放父亲脸前...

  • TableView 索引放大镜

    //一般把放大镜放在最顶部的位置。这样设置放大镜 、- (NSInteger) tableView:(UITabl...

网友评论

      本文标题:放大镜

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