利用原生js编写一个放大镜功能

  介绍

本篇文章为大家展示了利用原生js编写一个放大镜功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强> 1。查找元素

, 1.1查总找主要分区
, 1.2查找小盒子
, 1.3查找小盒子内的img小图片
, 1.4查找面具遮罩层
, 1.5查找大盒子
, 1.6查找大盒子内的img大图片,

<强> 2。鼠标移入主要的时候

, 2.1显示遮罩盒子
, 2.2显示大图分区

<强> 3。鼠标移出主要的时候

, 3.1隐藏遮罩盒子
, 3.2隐藏大图分区

<强> 4。鼠标在主要移动的时候! ! !

, 4.1遮罩盒子跟随鼠标移动
, 4.2遮罩盒子在鼠标中心处理
, 4.3遮罩盒子在分区边界内移动处理
, 4.4大图片& lt;反向比;& lt;按比例比;跟随鼠标移动

,获取元素偏移值和宽高

, 1。获取分区的水平,垂直偏移值
, 2。获取分区的宽度,高度
, 3。获取遮罩盒子的宽度,高度(隐藏的盒子无法获取宽高)
, 4。获取大图片的宽度,高度(隐藏的盒子无法获取宽高)

html代码:

& lt; body>   & lt; !——整个大盒子——比;   & lt; div类=癿ain"id=癿ain"比;   & lt; div类=皊mall"祝辞   & lt; !——小图——比;   & lt; img alt=?“类=皊mallImg"https://www.yisu.com/zixun/src=" . ./img/iphoneX.jpg " width=" 350 "/>   <!——遮挡层,黄色的小方块- ->   
  
     
        
  
  

css代码:

 & lt; style>
  * {
  保证金:0;
  填充:0;
  }
  
  .main {
  宽度:350 px;
  身高:350 px;
  保证金:100 px;
  边界:1 px固体# ccc;
  位置:相对;
  }
  
  .big {
  宽度:400 px;
  身高:400 px;
  位置:绝对的;
  上图:0;
  左:360 px;
  边界:1 px固体# ccc;
  溢出:隐藏;
  显示:没有;
  }
  
  .mask {
  宽度:175 px;
  身高:175 px;
  背景:rgba (255、255、0、0.4);
  位置:绝对的;
  上图:0 px;
  左:0 px;/*把鼠标指针换成移动图标*/光标:移动;
  显示:没有;
  }
  
  .small {
  位置:相对;
  身高:350 px;
  宽度:350 px;
  }
  
  .active .mask,
  .active .big {
  显示:块;
  }
  
  .big img {/*相对定位:相对自己原本的位置定位,原来的位置保留的*/位置:绝对的;
  }
  & lt;/style> 

javascript代码:

& lt; script>//查找元素   主要var=document.querySelector (“.main");   var=小document.querySelector (“.small");//左边小盒子   var smallImg=document.querySelector (“.smallImg");   var=document.querySelector面具(“.mask");//黄色遮罩层   var=大document.querySelector (“.big");//右边小盒子   var bigImg=document.querySelector (“。大.bigImg");//2。鼠标移入主要的时候//2.1显示遮罩盒子//2.2显示大图分区   主要。onmouseenter=function () {   mask.style.display=癰lock";   big.style.display=癰lock";   };   主要。onmouseleave=function () {   mask.style.display=皀one";   big.style.display=皀one";   };//4。鼠标在主要移动的时候! ! !//4.1遮罩盒子跟随鼠标移动//4.2遮罩盒子在鼠标中心处理//4.3遮罩盒子在分区边界内移动处理//4.4大图片& lt;反向比;& lt;按比例比;跟随鼠标移动   小。onmousemove=function (e) {   var x=e.pagex - 100 (175/2);//盒子的宽高为300 px,因为鼠标默认在左上角。因为需要向左移动自身一半   var y=e.pagey - 100 (175/2);盒子的宽高为300 px,因为鼠标默认在左上角。因为需要向下移动自身一半   如果(x<0) x=0;//规定遮罩层移动范围。如果遮罩层超出了小盒子边框,x就重置为0。   如果(y<0) y=0;////规定遮罩层移动范围。如果遮罩层超出了小盒子边框,y就重置为0。   如果(x> 175) x=175;//遮罩层本身的宽高为175   如果(y> 175) y=175;   mask.style.top=(y) +“px";   mask.style.left=(x) +“px";   bigImg.style.top=(- y * (800/350)) +“px";//右边放大效果,以800:350显示   bigImg.style.left=(- x * (800/350)) +“px";//在xy前面加-号是因为需要反向显示   }   & lt;/script>

上述内容就是利用原生js编写一个放大镜功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

利用原生js编写一个放大镜功能