JS版图片放大镜效果

本文实例为大家分享了JS实现图片放大镜效果的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{
            padding:0;
            margin:0;
        }
        .box{
            position: relative;
            width:350px;
            height:510px;
            margin:auto;
        }
        .middle {
            position: relative;
            border: 1px solid pink;
            overflow: hidden;

        }
        .hover_ceng{
            position: absolute;
            z-index: 1;
            background: url(./img/bg.png);
            background-size: 4px 4px;
            display: none;

        }
        .middle >img{
            width:100%;
            height:100%;
        }

        .small{
            position: relative;
            width:350px;
            height:110px;
            text-align: center;
        }
        .small>span{
            position: absolute;
            display:block;
            top:15px;
            line-height: 50px;
            font-size: 20px;
            width:20px;
            height:50px;
            background: #eabcb8;
        }
        .small .leftbtn {
            left: 0;
        }
        .small .rightbtn {
            right: 0;
        }
        .small>.list>ul> li{
            list-style:none ;
            float:left;
            width:250px;
        }
        .list{
            width:250px;
            display:inline-block;
            text-align: left;
            overflow: hidden;
        }
        .list_ul{
            width:500px;
            overflow: hidden;
            height:auto;
            transition: all 0.5s linear ;
        }
        .small-li{
            display: inline-block;
            width:54px;
            height:58px;
            margin:10px 0;
            border:2px solid transparent;
        }
        .small-li> img{
            width:100%;
            height:100%;
        }

        .big{
            position: absolute;
            top:0;
            left:350px;
            height:400px;
            width:350px;
            border:1px solid gainsboro;
            background-image: url(./img/big8.jpg);
            /*background-size: 350px 400px;*/
            display: none;
            /*background-repeat: no-repeat ;*/
        }

    </style>
</head>
<body>
 <div class="box" >
     <div class="middle" style=" width:350px;height:400px;">
         <div class="hover_ceng" style="  width:153.508px;height:200px;"></div>
         <img  id="middleimg" src="./img/middle.5.jpg" alt=""/>
     </div>
     <div class="small">
         <span class="leftbtn"><</span>
         <div class="list">
           <ul class="list_ul">
            <li>
                 <div class="small-li" data-middle="middle.5.jpg" data-big="big5.jpg">
                     <img src="./img/small5.jpg"   alt=""/>
                 </div>
                 <div class="small-li"  data-middle="middle.6.jpg" data-big="big6.jpg">
                     <img src="./img/small6.jpg"  alt=""/>
                 </div>
                 <div class="small-li"  data-middle="middle.7.jpg" data-big="big7.jpg">
                     <img src="./img/small7.jpg"  alt=""/>
                 </div>
                 <div class="small-li" data-middle="middle.8.jpg" data-big="big8.jpg">
                     <img src="./img/small8.jpg"   alt=""/>
                 </div>
            </li>
            <li>
               <div class="small-li" data-middle="middle.1.jpg" data-big="big1.jpg">
                   <img src="./img/small1.jpg"   alt=""/>
               </div>
               <div class="small-li"  data-middle="middle.2.jpg" data-big="big2.jpg">
                   <img src="./img/small2.jpg"  alt=""/>
               </div>
               <div class="small-li"  data-middle="middle.3.jpg" data-big="big3.jpg">
                   <img src="./img/small3.jpg"  alt=""/>
               </div>
               <div class="small-li" data-middle="middle.4.jpg" data-big="big4.jpg">
                   <img src="./img/small4.jpg"   alt=""/>
               </div>
            </li>
           </ul>
         </div>
         <span class="rightbtn">> </span>
     </div>
     <div class="big">
         <!--<img src="./img/big6.jpg" alt=""/>-->
     </div>
 </div>
 <script>
     var smallblack=document.getElementsByClassName("small-li");
     var middleimage=document.getElementById("middleimg");
     var middleblock=document.getElementsByClassName("middle")[0];
     var ceng=document.getElementsByClassName("hover_ceng")[0];
     var box_b=document.getElementsByClassName("box")[0];
     var bigbang=document.getElementsByClassName ("big")[0];
     var leftbutton=document.getElementsByClassName ("leftbtn")[0];
     var rightbutton=document.getElementsByClassName ("rightbtn")[0];
     var listmeun=document.getElementsByClassName ("list_ul")[0];
      var befortu=null;
     for(var i =0;i<smallblack.length;i++){
         smallblack[i].onmouseenter=function(){
             if(befortu)befortu.style.borderColor="transparent";
             this.style.borderColor="pink";
             befortu =this;
             //中等图出现
             middleimage.src="./img/" +  this.getAttribute("data-middle");
             //获取大图
              bigbang.style.backgroundImage="url(./img/"+this.getAttribute('data-big')+")";
         }
     }
  //添加鼠标进入事件var

     middleblock.onmouseenter=function(){
      this.style.cursor ="move";
      ceng.style.display ="block";
      bigbang.style.display ="block";
     }
     middleblock.onmouseleave=function(){
         ceng.style.display="none";
         bigbang.style.display ="none";
     }
     middleblock.onmousemove =function(m){
         var pageX = m.pageX || m.clientX;
         var pageY = m.pageY || m.clientY;
         //获取当前元素的偏移量  offsetLeft  左偏移   offsetTop  上偏移 this.offsetHeight,this.offsetWidth
       pageX = pageX -(box_b.offsetLeft+parseInt (ceng.style.width)/2);
       pageY = pageY -(box_b.offsetTop+parseInt (ceng.style.height)/2);
         var bigleft=parseInt (this.style.width) - parseInt (ceng.style.width);
         var bigtop=parseInt (this.style.height) - parseInt (ceng.style.height);
         pageX = pageX <=0 ? 0:(pageX >=bigleft? bigleft :pageX );
         pageY = pageY <=0 ? 0:(pageY >=bigtop? bigtop :pageY );
         ceng.style.left= pageX +"px";
         ceng.style.top= pageY +"px";
         //鼠标移动大图跟着移动
        bigbang.style.backgroundPosition = (-pageX * 2.28) + "px " + (-pageY * 2) + "px ";

     }
     leftbutton.onclick = function(){
         listmeun.style.marginLeft =0+"px";
     }
    rightbutton.onclick = function(){
         listmeun.style.marginLeft =-250+"px";
     }
 </script>
</body>
</html>

最大的图没能从原网站上下载下来,放大效果可能会出戏,还得学习扒拉图片。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 原生js写的放大镜效果

    我的大体思路是:时时监听鼠标的坐标,当鼠标移动时,透明层随着鼠标移动,大图片相对透明层的移动而移动.不废话了,看代码. 复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>放大镜</title> <meta name="Keywords" content=""> <me

  • js放大镜放大图片效果

    我们 js图片放大镜 body { background: #222; overflow: hidden; left: 0; top: 0; width: 100%; height: 100%; margin: 0; padding: 0; } #screen span { position:absolute; overflow:hidden; border:#FFF solid 1px; background:#FFF; } #screen img{ position:absolute; le

  • 用js实现放大镜的效果的简单实例

    第一次发博客,还有点小激动,本人现在正在天津上大学,希望以后从事前端这一行业,学习的时间不长,写博客为了记录自己的学习过程和收获,当然也算是巩固.可能写的东西不会像大牛那样高大上,只是一些基本的内容,当然我也会收藏一些我认为好的,不错的文章(其实最主要是我能看懂....).我相信以后自己也能够写出高大上的东西.加油! 废话说的有点多,说正事.前几天看了一段潭州教育的教学视频,其中的老师是用JQuery实现放大镜的效果(老师讲的是在是太慢,各种乱扯,跳着看的).由于我还没有好好的学习过JQuery

  • JavaScript图片放大镜效果代码[代码比较简单]

    #div1 { width:304px; height:222px; position:relative; margin:30px auto 0px;} #div1 img{width:304px; height:222px;} #div1 span { width:100px; height:100px; background:red; left:0px;top:0px; position:absolute; display:none; filter:alpha(opacity:20); op

  • JavaScript 图片放大镜(可拖放、缩放效果)第1/4页

    前些日子突然想做一个透镜效果,就突然想到了这个效果,于是找出当年"珍藏"的代码决定一尝所愿. 前言:这个程序主要分三部分:层的拖放.层的缩放.图片切割(包括预览). 其中层的拖放是很常见的效果,层的缩放有点难度,图片切割看着炫其实原理也很简单. 不过在实现的过程中也学习到很多以前不知道的东西,下面都会说明,希望大家从中也能学到东西. 原理: [拖放程序] 基本原理很简单,不知道的看代码就明白,其中参考了越兔和BlueDestiny的相关文章. 下面说一下比较有用的地方: [范围限制]

  • js实现购物网站放大镜功能

    本文实例为大家分享了js实现购物网站放大镜功能的具体代码,供大家参考,具体内容如下 首先看效果图: 先是布局,左边一个小图框,包含一个鼠标移动框,右边一个放大框. <div class="box"> <div class="small"> <img src="small3.jpg" alt=""> <div class="move"></div>

  • javascript实现简单放大镜效果

    一个大盒子中有一张图片,鼠标放上去会出现一个半透明的遮罩层,鼠标移动,遮罩层跟着移动,盒子旁边还有一个放大的图片,跟着遮罩层移动的位置而改变放大图的位置,鼠标离开大盒子,遮罩层和放大图片消失 实现思路 1.html.css将盒子,遮罩层.放大图片页面编辑好,设置遮罩层和放大图片默认隐藏 2.获取元素对象,将大盒子绑定鼠标事件 鼠标经过- - -mouseover,鼠标经过时设置遮罩层和放大图显示:display设置成'block' 鼠标离开- - -mouseout,鼠标经过时设置遮罩层和放大图

  • js实现简单放大镜特效

    本文实例为大家分享了js实现简单放大镜特效的具体代码,供大家参考,具体内容如下 先来看看效果: 写放大镜之前我们先来了解一下定位: 通常子绝父相 (父元素相对定位,子元素绝对定位) 元素的定位方式: 1.static     静态定位,所有元素,不添加任何定位方式时的默认状态 2.relative   相对定位,不脱离文档流,可以相对于自身的原始位置,位移 3.fixed      固定定位,完全脱离文档流,相对于浏览器的空白区域来位移, 且不会因为浏览器的滚动而滚动 4.absolute  

  • 奇妙的Javascript图片放大镜

    在Flash中我们用蒙板加上一些简单的脚本便可实现一个动态的图片放大镜.现在我们只用JavaScript结合CSS语言也可以轻易做出这个效果. 制作思路:"放大镜"后有一幅背景图,它是"放大了"的图的原本.我们通过移动"放大镜"时适当调整背景图的位置,使它显示的刚好是需要要放大的部分. 效果演示: (点这里在新窗口中查看) 制作步骤: 1)先准备两幅内容相同尺寸不同的图片,这里我们找了一个400×300像素的缩略图small_hill.gif,一

  • js实现简单的放大镜效果

    本文实例为大家分享了js实现简单放大镜效果的具体代码,供大家参考,具体内容如下 效果 效果,鼠标在原图片移动,黄色小盒子跟随鼠标移动,黄色小盒子盖住的部分,在显示区显示 效果图如下: 核心思路 1.鼠标放置在图片上,显示区出现,鼠标离开小盒子,显示区消失 2.鼠标在图片上移动时,小盒子跟随鼠标移动,且鼠标在黄色小盒子中间位置 3.小盒子给判断,让其不能超出图片区域 4.小盒在图片上移动多少,显示区域要移动同比例的距离 5.当显示区大小发生改变,或显示区内容增大变小,原来图片上的黄色小盒子随之改变

随机推荐