js实现淘宝浏览商品放大镜功能

本文实例为大家分享了js实现淘宝浏览商品放大镜的具体代码,供大家参考,具体内容如下

1、准备两张图片,其中一张图片分辨率为另一张图片的二倍。

2、前端页面布局

//box1位左侧原图,box2为右侧放大图额显示框,son为iv class="box1">

<div class="son"></div>

<div class="ceng"></div>

</div>

<div class="box2"></div>

3、js写逻辑

let box1=document.querySelector(".box1");

let box2=document.querySelector(".box2");

let son=document.querySelector(".son");

let ceng=document.querySelector(".ceng");

//鼠标移入:son,box2出现

ceng.onmouseenter=function(){

son.style.display="block"

box2.style.display="block"

}

//鼠标移出:son,box2消失

ceng.onmouseleave=function(){

son.style.display="none"

box2.style.display="none"

}

//鼠标移动:son的位置随鼠标移动,box2背景图的位置变化

ceng.onmousemove=function(e){

let sw=e.clientX-son.offsetWidth/2

let sh=e.clientY-son.offsetHeight/2

if(sw>ceng.offsetWidth-son.offsetWidth){

sw=ceng.offsetWidth-son.offsetWidth

}

else if(sw<=0){

sw=0;

}

if(sh>ceng.offsetHeight-son.offsetHeight){

sh=ceng.offsetHeight-son.offHeight

}

else if(sh<=0){

sh=0;

}

son.style.left=sw+"px"

son.style.top=sh+"px"

box2.style.backgroundPosition=`${-2*sw}px ${-2*sh}px`

}

完整代码

<!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>

*{

margin: 0;

padding: 0;

}

.box1{

width: 500px;

height:333px;

/* border:1px solid red; */

background: url('shatan.jpg') no-repeat;

position: relative;

float: left;

box-sizing: border-box

}

.son{

width: 100px;

height: 100px;

background-color: #fff;

position: fixed;

left:0;

top:0;

opacity: 0.7;

display: none;

}

.ceng{

width: 100%;

height: 100%;

position: absolute;

top: 0;

left: 0;

z-index: 100;

}

.box2{

width: 200px;

height:200px;

border:1px solid red;

background: url('shatan1.jpg') no-repeat;

float: left;

display: none;

}

</style>

<body>

<div class="box1">

<div class="son"></div>

<div class="ceng"></div>

</div>

<div class="box2"></div>

</body>

</html>

<script>

let box1=document.querySelector(".box1");

let box2=document.querySelector(".box2");

let son=document.querySelector(".son");

let ceng=document.querySelector(".ceng");

ceng.onmouseenter=function(){

son.style.display="block"

box2.style.display="block"

}

ceng.onmouseleave=function(){

son.style.display="none"

box2.style.display="none"

}

ceng.onmousemove=function(e){

let sw=e.clientX-son.offsetWidth/2

let sh=e.clientY-son.offsetHeight/2

if(sw>ceng.offsetWidth-son.offsetWidth){

sw=ceng.offsetWidth-son.offsetWidth

}

else if(sw<=0){

sw=0;

}

if(sh>ceng.offsetHeight-son.offsetHeight){

sh=ceng.offsetHeight-son.offHeight

}

else if(sh<=0){

sh=0;

}

son.style.left=sw+"px"

son.style.top=sh+"px"

box2.style.backgroundPosition=`${-2*sw}px ${-2*sh}px`

}

</script>

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

以上是 js实现淘宝浏览商品放大镜功能 的全部内容, 来源链接: utcz.com/p/218401.html

回到顶部