放大镜效果之js

HTML代码:

div.box>div#left+div#buttom+div#right

div#left>img

div#buttom>div.small>img

CSS代码:

        .box{
            position: relative;
        }
        #left{
            width:310px;
            height:310px;
            border: 1px solid blueviolet;
        }
        #buttom{
            width: 310px;
            height: 40px;
            margin-top: 10px;
        }
        #buttom .small{
            border: 1px solid wheat;
            float: left;
            margin-right: 5px;
        }
        #right{
            width: 400px;
            height: 310px;;
            position: absolute;
            top:0;
            left:320px;
            border: 1px solid #ccc;
            display: none;
            overflow: hidden;
        }
        #right img{
            position: absolute;
            top:0;
            left:0;
        }

JS代码:

 1     <script>
 2         function $(id){
 3             return document.getElementById(id);
 4         }
 5         window.onload = function () {
 6             var left = $(‘left‘);
 7             var button = $(‘buttom‘);
 8             var right = $(‘right‘);
 9             button.onmouseover = function (e) {
10                 var e = e||window.event;//兼容事件
11                 var imgobj = e.srcElement|| e.target; //获得目标事件源,即图片 ,ie下srcElement,火狐下target
12                 if(imgobj.nodeName == ‘IMG‘){  //当目标事件源是图片时
13 //                    alert(imgobj.src);
14                     var names = imgobj.src; //获得图片路径
15                     console.log(names);
16                     console.log(names.lastIndexOf(‘/‘));//获得/的角标位
17                     console.log(names.substring(names.lastIndexOf(‘/‘))); //从角标位开始截至最后为图片名
18                     var imgOldName = names.substring(names.lastIndexOf(‘/‘));
19                     var imgNewName = imgOldName.replace(‘1‘,‘2‘); // 从改名来换路径
20                     console.log(imgNewName);
21                     left.innerHTML = ‘<img src=img‘+imgNewName +‘>‘;
22                 }
23             };
24             //右边图片显示逻辑
25             left.onmouseover = function () {
26                 right.style.display =‘block‘;
27                 var leftimg = left.getElementsByTagName(‘img‘)[0];
28                 var names = leftimg.src;
29                 var imgoldname = names.substring(names.lastIndexOf(‘/‘));
30                 var imgNewName = imgoldname.replace(‘2‘,‘3‘);
31                 right.innerHTML = "<img src=img"+imgNewName+">";
32                 var rightImg = right.getElementsByTagName(‘img‘)[0];
33                 //添加移动事件
34                 this.onmousemove = function (e) {
35                     var e = e||window.event;
36                     var l = e.offsetX|| e.layerX; //相对于事件源位置的兼容写法
37                     var r = e.offsetY|| e.layerY;
38                     //根据比例来定位大图坐标
39                     rightImg.style.left = l/left.offsetWidth*(right.offsetWidth-rightImg.offsetWidth)+"px";
40                     rightImg.style.top = r/left.offsetHeight*(right.offsetHeight-rightImg.offsetHeight)+"px";
41                 }
42             }
43             //离开事件
44             left.onmouseout = function () {
45                 right.style.display = ‘none‘;
46             }
47         }
48     </script>
时间: 2024-08-03 09:24:23

放大镜效果之js的相关文章

放大镜效果

放大镜效果的html 部分: <div id="div1"> <img src="img/m1.jpg" /> <span id="mask"></span></div><div id="div2"> <img src="img/b1.jpg" /></div> 两张一样的图片,一张大图,一张小图,两张图片的比例

原生js实现放大镜效果

放大镜效果主要涉及3个鼠标事件: 1.onmouseover,鼠标移入浮动小方块和显示放大的区域显示: 2.onmousemove,鼠标移动,小方块和放大区域一起移动: 3.onmouseout,鼠标移除小方块和放大区域消失. 其实放大镜效果最主要的是小方块与放大区域的比例及位置: <div id="small_box"> <div class="small_Pic"> <div id="float_box">

前端JS电商放大镜效果

前端JS电商放大镜效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>26-电商放大镜</title> <style type="text/css"> *{ padding: 0; margin: 0; } #left{ padding: 0; margin: 0; w

原生js实现的放大镜效果

这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html> <head> <title>js放大镜效果</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <style&

CSS+JS打造的精美放大镜效果

<!doctype html> <html> <head> <base href="http://www.CsrCode.Cn/" /> <meta charset="utf-8"/> <title>CSS+JS打造的精美放大镜效果丨梨花粉价格丨河北叉车</title> <meta http-equiv="X-UA-Compatible" content=&

原生JS实现简单的淘宝放大镜效果

大家经常去淘宝买东西会发现,淘宝上的放大镜效果挺有意思的,这里简单的实现了下,代码中的图片地址 亲们可以自行更换; <!DOCTYPE html> <html> <head> <title>放大镜</title> <meta charset="utf-8" /> <style type="text/css"> *{ margin: 0; padding: 0; } body{ hei

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

大家几乎都有在网上购物的经验,有的网站会有一个商品放大镜功能, 就是把鼠标移到图片上的时候,旁边会有另外一张大的图片展示,等同于 放大镜效果,那这样的效果怎样实现的呢,我把代码发给大家,请大家参考. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>放大镜</title> <style> *{m

jq放大镜效果

之前有在网上见过原生js实现放大镜的效果,但是代码量略多,今天和大家分享下我自己用jq实现的放大镜效果吧! 首先html布局结构和样式 贴上代码给大伙看一下: html结构: <div class="pic"> <img src="images/xiaotu.jpg" > <div class="big-pic"></div> </div> css样式: .pic{position:re

关于jQuery中实现放大镜效果

1.1.1 摘要 相信大家都见过或使用过放大镜效果,甚至实现过该效果,它一般应用于放大查看商品图片,一些电商网站(例如:凡客,京东商城,阿里巴巴等)都有类似的图片查看效果. 在接下来的博文中,我们将向大家介绍通过jQuery实现放大镜效果. 目录 实现原理 mousemove事件 相对坐标 background-position属性 mousewheel事件 1.1.2 正文 实现原理 首先,我们讲解一下放大镜效果的实现方式: 方法一:准备一张高像素的大图,当鼠标放到原图上,加载显示大图的对应位