1.onclick点击小图可以切换图片

2.onmouseover显示黄色div与放大图片的div

3.onmouseout,2的内容消失

4.onmousemove黄色div跟随鼠标移到,但是不能超出图片范围,放大图片的部位与黄色div的位置有关联

代码实现:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>京东商品</title>
<style>
#all{
position: relative;
margin-left: 200px;
}
.little{
float: left;
margin: 10px;
color: transparent;
}
#main{
position: relative;
width: 350px;
height: 350px;
background-image: url(img/pics/img1-1.jpg);
}
#movediv{
position: absolute;
width: 160px;
height: 160px;
background-color: yellow;
opacity: 0.5;
}
#big{
width: 500px;
height: 500px;
position: absolute;
left: 400px;
top: 10px;
display: none;
background-image: url(img/pics/img1-1-1.jpg);
background-repeat: no-repeat;
}
</style>
</head>
<body>
<div id="all">
<div id="main">
<div id="movediv"></div>
</div>
<div>
<div class="little"><img src="img/pics/img1.jpg" /></div>
<div class="little"><img src="img/pics/img2.jpg" /></div>
<div class="little"><img src="img/pics/img3.jpg" /></div>
<div class="little"><img src="img/pics/img4.jpg" /></div>
<div class="little"><img src="img/pics/img5.jpg" /></div>
</div>
<div id="big"> </div>
</div>
<script>
// console.log(parseInt("123adc"));
var all=document.getElementById("all");
var littles=document.getElementsByClassName("little");
var main=document.getElementById("main");
var movediv=document.getElementById("movediv");
var big=document.getElementById("big");
for(let i=0;i<littles.length;i++){
littles[i].setAttribute("onclick","changeMain(this)");
}
function changeMain(obj){
var index=null;
for(var i=0;i<littles.length;i++){
if(littles[i]==obj){
index=i+1;;
}
}
console.log(index);
main.style.backgroundImage="url(img/pics/img"+index+"-1.jpg)";
big.style.backgroundImage="url(img/pics/img"+index+"-1-1.jpg)";
}
main.onmousemove=function(event){
movediv.style.display="block";
big.style.display="block";
movediv.style.top=event.clientY-movediv.offsetHeight*0.5-all.offsetTop+"px";
if(event.clientY>=main.offsetHeight-movediv.offsetHeight*0.5+all.offsetTop){
movediv.style.top=main.offsetHeight-movediv.offsetHeight+"px";
}
if(event.clientY<=movediv.offsetHeight*0.5+all.offsetTop){
movediv.style.top=0+"px";
}
movediv.style.left=event.clientX-movediv.offsetWidth*0.5-all.offsetLeft+"px";
if(event.clientX<=movediv.offsetWidth*0.5+200){
movediv.style.left=0+"px";
}
if(event.clientX>=main.offsetWidth-movediv.offsetWidth*0.5+all.offsetLeft){
movediv.style.left=main.offsetWidth-movediv.offsetWidth+"px";
}
big.style.backgroundPositionX=-parseInt(movediv.style.left)*8/5+"px";
big.style.backgroundPositionY=-parseInt(movediv.style.top)*8/5+"px";
}
main.onmouseout=function(){
movediv.style.display="none";
big.style.display="none";
}
</script>
</body>
</html>

【javascript】京东商品浏览放大镜效果的更多相关文章

  1. JavaScript实现的网页放大镜效果

    今天在观看视频学习的时候,学到了一个小技巧.就拿过来与大家进行分享一下啦. 实现的原理 分析需求:需要两张图,一大一小.然后根据鼠标的动作显示出不同的区域块的图像. 核心:鼠标事件的获取和处理.图片显 ...

  2. 用JavaScript中jQuery编写放大镜效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. js 实现商品放大镜效果

    知识点,需熟悉下面属性及含义: offsetLeft           //获取元素相对左侧的距离 (计算是从最左侧边框外开始) offsetTop           //获取元素相对顶部的距离 ...

  4. js、jquery实现放大镜效果

    在一些电商网站的商品详情页面,都会有放大镜效果,实现起来并不是很困难,今天用了两个小时,写了一个放大镜效果的实例,来分享给大家! 实现的效果大概是这个样子的 预览 先来看一下效果吧,点击下面的链接预览 ...

  5. 原生javascript实现图片放大镜效果

    当我们在电商网站上购买商品时,经常会看到这样一种效果,当我们把鼠标放到我们浏览的商品图片上时,会出现类似放大镜一样的一定区域的放大效果,方便消费者观察商品.今天我对这一技术,进行简单实现,实现图片放大 ...

  6. JavaScript之放大镜效果

    在网上也浏览过许多关于JavaScript放大镜效果的文章,有的代码解释得些隐晦难懂,看的我头有点晕晕的╮(╯﹏╰)╭,我的心情是这样的: 吐槽完了,我们动动小鼠标,当鼠标经过下面这张美女图片时就实现 ...

  7. 利用JS实现购物网站商品放大镜效果

    大家几乎都有在网上购物的经验,有的网站会有一个商品放大镜功能, 就是把鼠标移到图片上的时候,旁边会有另外一张大的图片展示,等同于 放大镜效果,那这样的效果怎样实现的呢,我把代码发给大家,请大家参考. ...

  8. 【JavaScript】放大镜效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. JavaScript之放大镜效果2

    在放大图片效果的同时,我们怎么原图和放大窗体增加间隔呢? 我们只需应用一个table就行了: 源码上: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML ...

随机推荐

  1. oracle如何实现去重和分页

    一:oracle实现去重: user数据表: 分两步:1.查询重复数据  2.删除重复数据 1.查询重复数据:在oracle中实现查询重复数据,可以借助于rowid这个伪列.oracle中每个表物理上 ...

  2. 使用RSS订阅喜欢的微博博主

    获取uid方法:进入博主微博主页,使用控制台执行 /uid=(\d+)/. exec(document.querySelector('.opt_box .btn_bed').getAttribute( ...

  3. python 基础知识2-数据类型

    1.什么是数据类型? 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数字:主要用于运算.1,2,3... b ...

  4. Python脚本:实现对象集合List导入到excel表格,支持mysql,postergrsql,MongoDB

    import xlwt import os import datetime #验证export_filed中的字段是否在对象字段中 def checkField(obj_list,filed_dict ...

  5. tp5分页数据

    paginate分页完成之后,生成的分页数据是对象形式存在的,所以如果要调用其分页的数据,比如想要遍历修改数据中的值,等需要进行 foreach操作的地方,需要使用 $re=Db::->tabl ...

  6. 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接

    [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...

  7. C# 数据操作系列 - 7. EF Core 导航属性配置

    在上一篇,大概介绍了Entity Framework Core关于关系映射的逻辑.在上一篇中留下了EF的外键映射没有说,也就是一对一,一对多,多对一,多对多的关系等.这一篇将为大家细细分析一下,如何设 ...

  8. xpython操作excel之xlwt与xlrd

    xlwt与xlrd只能针对xls格式的excel进行操作!!!(openpyxl操作excel) xlwt写excel # pip install xlwt下载导入xlwt写xls格式的excel操作 ...

  9. mysql小白系列_06 备份与恢复

    1.使用mydumper工具全库备份. 1)源码编译安装 2)全库备份 2.误操作truncate table gyj_t1;利用mysqldump的备份和binlog日志对表gyj_t1做完全恢复. ...

  10. 三、HTML元素

    嵌套的HTML元素 <!--以下实例包含了三个HTML元素,分别是<html>.<body>.<p>--> <!DOCTYPE html> ...