在平时网上商城购物时,我们能够通过放大镜效果来使我们看图片能够更加的清楚,今天我就来给大家分享一下我学习的放大镜特效

  下图是原图的样子                                                              下图是鼠标放上去的效果

                  

  接下来我们就看一看放大镜效果是如何实现的

  1.首先我们还是先把div布局写出来

<div class="bfdj">
<div id="box">
<div id="bug1">
<img src="../img/b2.jpg" alt="" id="bug">
<div id="ball"></div>
<div id="mask"></div>
</div> <div id="bug2">
<img src="../img/b2.jpg" id="pic">
</div>
</div>
<!--小图片五张-->
<div id="bimg">
<div id="imgs">
<img src="../img/b2.jpg" alt="" id="img1">
<img src="../img/bbbb.jpg" alt="" id="img2">
<img src="../img/bbbb1.jpg" alt="" id="img3">
<img src="../img/bbbb2.jpg" alt="" id="img4">
<img src="../img/bbbb3.jpg" alt="" id="img5">
</div>
</div>
</div>
<script src="../js/bf.js"></script>

  2.其次是css部分

/*放大镜*/
*{
margin: 0;
padding: 0;
}
.bfdj{
width: 100%;
height: 570px;
/**/
}
#box{
width: 375px;
height: 350px;
position: relative;
margin-left: 300px;
top:100px;
/*right: ;*/
/**/
}
#bug1{
width: 376px;
height: 350px;
border: 1px solid gainsboro;
position: relative;
display: inline-block;
/*margin-left: 200px;*/
/**/
}
/*.box-right{*/
/*position: absolute;*/
/*float: right;*/
/**/
/*margin-left: 680px;*/
/*margin-top: -250px;*/
/*width: 600px;*/
/*height: 425px;*/
/*font-size: 16px;*/
/*font-family: 微软雅黑;*/
/*border: 1px solid lightgrey;*/
/*background-image: url("../img/bhh.jpg");*/
/*}*/
#bug1 img{
width: 100%;
height: 100%;
display: block;
}
#ball{
width: 150px;
height: 150px;
position: absolute;
top:0;
left: 0;
background-color: navajowhite;
opacity: 0.3;
/*display: none;*/
}
#mask{
width:100%;
height: 100%;
position: absolute;
top:0;
left: 0;
z-index: 5;
cursor: pointer;
}
#bimg{
position: relative;
margin-left: 300px;
margin-top: 100px;
}
#imgs img{
width: 70px;
height: 70px;
float: left;
border: 2px solid transparent;
margin-left: 2px;
margin-top: 2px;
position: relative;
/*margin-left: 400px;*/ }
#imgs img:first-child{
margin-left: 0;
}
#imgs img:hover{
border: 2px solid gray;
} #bug2{
/**/
width: 376px;
height: 350px;
position: relative;
top:-355px;
left: 1px;
overflow: hidden;
display: none;
z-index: 4;
}
#bug2 img{
width: 400%;
height: 400%;
display: block;
border: none;
position: absolute;
z-index: 2;
}

  3.最后是js部分代码

        //放大镜
var bug = document.getElementById("bug");
var img1= document.getElementById("img1")
var img2= document.getElementById("img2")
var img3= document.getElementById("img3")
var img4= document.getElementById("img4")
var img5= document.getElementById("img5") img1.addEventListener("mousemove",function () {
bug.src="../img/b2.jpg"
})
img2.addEventListener("mousemove",function () {
bug.src="../img/bbbb.jpg"
})
img3.addEventListener("mousemove",function () {
bug.src="../img/bbbb1.jpg"
})
img4.addEventListener("mousemove",function () {
bug.src="../img/bbbb2.jpg"
})
img5.addEventListener("mousemove",function () {
bug.src="../img/bbbb3.jpg"
}) var bug1 = document.getElementById("bug1");
var ball = document.getElementById("ball");
var bug2= document.getElementById("bug2");
var rightImg = document.getElementById("pic"); img1.addEventListener("mousemove",function () {
rightImg.src="../img/b2.jpg"
})
img2.addEventListener("mousemove",function () {
rightImg.src="../img/bbbb.jpg"
})
img3.addEventListener("mousemove",function () {
rightImg.src="../img/bbbb1.jpg"
})
img4.addEventListener("mousemove",function () {
rightImg.src="../img/bbbb2.jpg"
})
img5.addEventListener("mousemove",function () {
rightImg.src="../img/bbbb3.jpg"
})
bug1.onmousemove =function (event) {
var e = event || window.event; //获取鼠标对象
ball.style.display="block";
bug2.style.display="block";
//鼠标居中
var x = (e.offsetX || e.layerX) - ball.offsetWidth/2//offsetWidth获取 ball的宽度
var y = (e.offsetY || e.layerY) - ball.offsetHeight/2
if(x<=0){
x=0;
}else if(x>box.clientWidth-ball.offsetWidth){
x=box.clientWidth-ball.offsetWidth
}
if(y<=0){
y=0;
}else if(y>box.clientHeight-ball.offsetHeight){
y=box.clientHeight-ball.offsetHeight
}
ball.style.left=x+"px";
ball.style.top=y+"px";
//四倍大小
rightImg.style.left= x*-4 +"px"
rightImg.style.top= y*-4 +"px"; this.onmouseout =function () {
ball.style.display="none";
bug2.style.display="none";
}
}

js放大镜特效的更多相关文章

  1. 未封装的js放大镜特效

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>j ...

  2. JS放大镜特效(兼容版)

    原理 1.鼠标在小图片上移动时,通过捕获鼠标在小图片上的位置,定位大图片的相应位置 设计 1.页面元素:小图片.大图片.放大镜 2.技术点:事件捕获.定位 1)onmouseover:会在鼠标指针移动 ...

  3. 案例:用JS实现放大镜特效

    案例:用JS实现放大镜特效 案例:用JS实现放大镜特效

  4. 基于jQuery仿淘宝产品图片放大镜特效

    在开发商城的时候,往往会用到图片的放大功能,这里把自己在近期项目中使用的放大镜特效做一下总结(非插件). 放大镜效果 常用的js组件jquery.imagezoom,jquery.jqzoom,jqu ...

  5. JQuery仿购物网站放大镜特效所遇问题及思考

    JQuery仿购物网站放大镜特效所遇问题及思考 先贴下效果图,然后描述起来也就不会不知道我在说什么了. 我碰到的问题一: 一开始我自己总结了是因为两个小原因导致的①使用了mouseover,mouse ...

  6. 第五章 JS典型特效

    注意: 1.JS在HTML中从上到下依次执行,所以获取元素的结果与JS的位置有关 <!DOCTYPE html> <html> <head> <title&g ...

  7. Three.js粒子特效,shader渲染初探(一篇非常详细的介绍)

    Three.js粒子特效,shader渲染初探 转载来源:https://juejin.im/post/5b0ace63f265da0db479270a 这大概是个序 关于Three.js,网上有不多 ...

  8. js 时钟特效

      时钟特效 CreateTime--2018年2月24日15:11:23 Author:Marydon 实现方式:都是基于HTML5的canvas标签实现的 款式一 借助jQuery插件实现 < ...

  9. jquery.imagezoom.js制作鼠标悬停图片放大镜特效、参数和最简教程

    一.插件介绍 今天在用到放大镜效果的时候,突然发现网站里没有放大镜的插件.于是总结了一下,放到这里.为自己,也为他人提供方便.jquery.imagezoom.js这款插件用途很简单,就是鼠标移过去, ...

随机推荐

  1. python3学习笔记(三):注释和字符串

    一.注释 为了让别人能够更容易理解程序,使用注释是非常有效的,即使是自己回头再看旧代码也是一样. # 打印圆的周长: print(2* pi* r) 在python 中用井号(#)表示注释.井号(#) ...

  2. ali之mtl平台学习

    摩天轮平台可以进行无线测试.设备借用.打包发布.线上监控等功能. 无线测试包括:mock测试.真机适配.代码审查.验收报告等. mock测试类似于fiddler,主要用于接口查看,可以查看请求,返回串 ...

  3. linux xz压缩解压

    1. 解压 xz 格式文件 方法一: 需要用到两步命令,首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar,其次用 tar 命令将 ...

  4. 关闭layer.open打开的页面

    window.parent.location.reload(); //刷新父页面 var index = parent.layer.getFrameIndex(window.name); //获取窗口 ...

  5. DB2创建视图并授权给其他用户

    创建视图并授权给其他用户 可以在操作系统界面.或者DB2交互界面下进行数据库操作 查看数据库节点[db2inst1@ELONEHR-DB ~]$ db2 list db directory Syste ...

  6. 常量const实践

    这篇文章写的很好:https://www.cnblogs.com/zhangfeionline/p/5882790.html 自己是实践: 1. 定义时必须初始化值,不然如下错误: 2. 3. 使用:

  7. 四十三、jenkins启动时报错:consider increasing the maximum size of the cache. After eviction approximately [10,239] KB of data

    jenkins启动时报错: consider increasing the maximum size of the cache. After eviction approximately [10,23 ...

  8. leetcode 125 验证回文字符串 Valid Palindrome

    验证回文字符串 C++ 思路就是先重新定义一个string ,先遍历第一遍,字符串统一小写,去除空格:然后遍历第二遍,首尾一一对应比较:时间复杂度O(n+n/2),空间O(n); class Solu ...

  9. IDEA集成Tomcat启动控制台乱码

    解决方法: 在下图位置加上: -Dfile.encoding=UTF-8 然后安装下图设置: 如果上述方法重启tomcat还是乱码,那么: 进入idea的安装目录, 进入bin目录下.找到idea.e ...

  10. 五、SpringBoot—HelloWorld案例

    弱弱的补充一下啊,,,上一讲如果个别同学创建完项目之后发现项目pom.xml文件或者项目其他地方报错,你可以安装下图操作: HelloWorld案例: 编写好之后启动项目(贼姬霸简单) 启动成功: 浏 ...