原生javascript达成图片放大镜效果,javascript放大镜

本文达成的是一款轻便的放大镜效果,有二种分裂的体裁,支持移动端;我们能够直接下载源码举办学习参谋,上边来一同上学学习啊。

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

当大家在电商网址上买卖商品时,平时会看到如此一种效应,当咱们把鼠标放到大家浏览的物品图片上时,会出现就好像放大镜同样的必然区域的放大功效,方便消费者观望商品。明天自己对这一才能,举行简易达成,完成图片放大镜效果。
自家在代码中实行了代码编写的思绪的表明和详细的代码注释,方便读者,请看代码:

<html>
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
   *{margin:0px; padding:0px;}
   .small-box {
    width:300px;
    height:300px;
    margin-left:100px;
    margin-top:100px;
    border:1px #ccc solid;
    cursor:move;
    float:left;
    position:relative;
   }
   .small-box img {
    width:300px;
    height:300px;
   }
   .tool {
    width:150px;
    height:150px;
    background-color:gold;
    opacity:0.6;
    filter:alpha(opacity=60);
    position:absolute;
    left:0px;
    top:0px;
    display:none;
   }
   .tool.active {
    display:block;
   }
   .big-box {
    width:300px;
    height:300px;
    border:1px #ccc solid;
    overflow:hidden;
    float:left;
    margin-top:100px;
    position:relative;
    display:none;
   }
   .big-box.active {
    display:block;
   }
   .big-box img {
    width:600px;
    height:600px;
    position:absolute;
   }
  </style>
 </head>
 <body>
  <div class="small-box" id="smallBox">
   <img src="img1.jpg"/>
   <div class="tool" id="tool"></div>
  </div>
  <div class="big-box" id="bigBox">
   <img src="img1.jpg" id="bigImg" />
  </div>
  <script>
   /*
    第一步:当页面加载完后,获取所要操作的节点对象。
    第二步:为smallBox添加一个鼠标浮动事件
       当鼠标浮动到smallBox可视区域的时候,显示出小黄盒子tool
       和右边的大盒子(小黄盒子的放大版)bigBox
       添加active

      为smallBox添加一个鼠标离开事件
       隐藏小黄盒子和右边的大盒子
       去掉active

    第三步:为smallBox添加一个鼠标移动事件
      小黄盒子tool要跟着鼠标的坐标移动
      右边的大盒子里的图片也跟着指定的比例移动
   */
   var smallBox = document.getElementById("smallBox");//小盒子
   var tool = document.getElementById("tool");//小盒子中的黄色区域
   var bigBox = document.getElementById("bigBox");//大盒子
   var bigImg = document.getElementById("bigImg");//放大的图片
   //鼠标进入小盒子区域内,显示黄色区域和大盒子
   smallBox.onmouseenter = function(){
    tool.className = "tool active";
    bigBox.className = "big-box active";
   }
   //鼠标离开小盒子区域,不显示黄色区域和大盒子
   smallBox.onmouseleave = function(){
    tool.className = "tool";
    bigBox.className = "big-box";
   }
   //鼠标在小盒子内移动
   smallBox.onmousemove = function(e){
    var _e = window.event||e;//事件对象
    var x = _e.clientX-this.offsetLeft-tool.offsetWidth/2;//事件对象在小盒子内的横向偏移量
    var y = _e.clientY-this.offsetTop-tool.offsetHeight/2;//竖向偏移量
    if(x<0){
     x = 0;//当左偏移出小盒子时,设为0
    }
    if(y<0){
     y = 0;//当上偏移出小盒子时,设为0
    }
    if(x>this.offsetWidth-tool.offsetWidth){
     x = this.offsetWidth-tool.offsetWidth;//当右偏移出小盒子时,设为小盒子的宽度-黄色放大区域宽度
    }
    if(y>this.offsetHeight-tool.offsetHeight){
     y = this.offsetHeight-tool.offsetHeight;//当下偏移出小盒子时,设为小盒子的高度-黄色放大区域高度
    }
    tool.style.left = x + "px";//黄色放大区域距离小盒子左偏距
    tool.style.top = y + "px";//黄色放大区域距离小盒子上偏距
    bigImg.style.left = -x*2 + "px";//放大图片移动方向相反,偏移距离加倍
    bigImg.style.top = -y*2 + "px";
   }
  </script>
 </body>
</html>

此地,作者并从未对代码中css样式,JavaScript行为实行和html结构的分开,方便读者阅读和运作。

有读者大概思量,获取事件目的的舞狮距离时直接利用offsetX和offsetY属性,省去了总结,但是作者在考试时,出现了特别,水绿放大区域并不可能平安的乘机鼠标举行移动,作者感觉,当时用offsetX和offsetY时,实行onmousemove会不断地出发onmouseover,而onmouseover会产惹事件传播,从而导致在获得offsetX时出现极度。最终,作者利用上述代码中的方法,能够产出稳固的法力。读者能够自行运作代码,查看效果。这里附上作者的机能图:

图片 1

以上正是本文的全体内容,希望对我们的就学抱有匡助,也盼望大家多多支持帮客之家。

http://www.bkjia.com/Javascript/1189335.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javascript/1189335.htmlTechArticle原生javascript实现图片放大镜效果,javascript放大镜
当我们在电商网址上选购商品时,日常会看出那样一种成效,当大家把鼠标放到大家浏览…

贯彻效益如下

图片 2

效果一

图片 3

效果二

图片 4

效果三

调用代码如下

//前面是ID或者Class,后面有init里面参数分别有1,2,3代表三种不同的效果: 
zoom(‘#item').init(); //这里写0,或者不写都可以,默认0 
zoom(‘#item').init(1); //效果2 
zoom(‘#item').init(2); //效果3 

//另外还有一个参数,就是选择器后面写上true的话,就是给所有选择的元素添加放大镜效果,不写的话只有第一个有 
zoom(‘#item',true).init(); 

体制就因此css来定义,未有写进js里面。

源码下载:点击这里.rar)

总结

以上正是那篇小说的全部内容了,希望对大家的求学也许干活能拉动一定的救助,假设有问号大家能够留言调换。

你或然感兴趣的小说:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图