js实现图片放大展示效果


Posted in Javascript onAugust 30, 2017

图片放大展示效果的实现代码,可动态生成图片,每次点击看原图的时候为当前id里面的图片

HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <script src="node_modules/jquery/jquery.js"></script>
    <style>
      *{
        margin: 0;
        padding: 0;
      }
      #picOne img{
        width: 200px;
        height: 200px;
      }
      .mask-img {
        display: none; 
        position: fixed; 
        top: 0; 
        left: 0; 
        width: 100%; 
        height: 100%; 
        z-index: 10; 
        background: rgba(0,0,0,.2);
      }
      
      .picture{
        display: none; 
        position: fixed; 
        top: 50%; left:50%; 
        transform: translate(-50%,-50%); 
        width: 960px; 
        height: 700px; 
        line-height: 700px; 
        text-align:center; 
        background: #666; 
        z-index: 20;
      }
      .picture .phone{
        vertical-align: middle; 
        max-width: 868px; 
        max-height: 670px; 
      }
      .picture .left{
        position: absolute; 
        left: 10px; 
        top: 320px; 
        width: 25px; 
        height: 40px; 
        line-height: 40px;
      }
      .picture .right{
        position: absolute; 
        right: 10px; 
        top: 320px; 
        width: 25px; 
        height: 40px; 
        line-height: 40px;
      }
    </style>
  </head>
  <body>
    <div class="seaImg">  <!-- seaImg可动态生成多个 -->
      <div id="picOne"> 
        <img src="img/img2.jpg"> 
        <img src="img/img3.jpg">
        <img src="img/img1.jpg"> 
      </div> 
    </div>
    <!--  遮罩层 -->
    <div class="mask-img"></div>
    <div class="picture">
      <img class="phone" src="" alt="" />
      <div class="left"><img src="img/left.png" alt="" /></div>
      <div class="right"><img src="img/right.png" alt="" /></div>
    </div>
  </body>
  <script>
    function seaImg(){
      $(".mask-img").on("click",function(e){
        $(".mask-img").css("display","none");
        $(".picture").css("display","none");      
      })
      var imgs = $('.seaImg img')
      var images;
      imgs.on('click',function(e){
        var father = (e.currentTarget).parentNode; //当前点击图片的父元素
        var att = father.attributes.id.nodeValue; //父元素自己的属性id
        var image = '#' + att + ' img'
        images = $(image)  //jquer获取id下的所有img
        $(".mask-img").css("display","block");
        $(".picture").css("display","block");     
        $(".phone").attr("src",e.currentTarget.src);
        if(e.currentTarget == images[0]){
          $(".left").css("display","none");
        }else{
          $(".left").css("display","block");
        }      
        if(e.currentTarget == images[images.length-1]){
          $(".right").css("display","none");       
        }else{
          $(".right").css("display","block");      
        }
      })
      




//左点击事件,当图片为第一张的时候左边的箭头点击图片隐藏
      $(".left").on("click",function(){ 
        var imgSrc = $(".phone").attr("src");
        $(".right").css("display","block");    
        for(var i = 0 ; i<images.length; i++){   
          if(imgSrc == images[i].src){
            if(imgSrc == images[1].src){
              $(".left").css("display","none");
            }
            var j = i;
            $(".phone").attr("src",images[j-1].src);
          }
   
        }
      })
      



 //右点击事件, 当图片为最后一张的时候右边箭头点击图片隐藏
      $(".right").on("click",function(){
        var imgSrc = $(".phone").attr("src");
        $(".left").css("display","block");     
        for(var i = 0 ; i<images.length; i++){       
          if(imgSrc == images[i].src){
            if(imgSrc == imgs[images.length-2].src){
              $(".right").css("display","none");
            }
            var j = i;
            $(".phone").attr("src",images[j+1].src);
          }
        }
      })
       
    }
     seaImg()
  </script>
</html>

< 向左点击事件

>  向右点击事件

第一张效果图

js实现图片放大展示效果

中间图片效果图

js实现图片放大展示效果

最后一张效果图

js实现图片放大展示效果

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

Javascript 相关文章推荐
DIV始终居中的js代码
Feb 17 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
JQuery select(下拉框)操作方法汇总
Apr 15 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
微信小程序 网络API 上传、下载详解
Nov 09 Javascript
基于jQuery实现顶部导航栏功能
Dec 27 Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 Javascript
AngularJs 常用的过滤器
May 15 Javascript
vue解决一个方法同时发送多个请求的问题
Sep 25 Javascript
react同构实践之实现自己的同构模板
Mar 13 Javascript
ES6中Symbol、Set和Map用法详解
Aug 20 Javascript
详解js几个绕不开的事件兼容写法
Aug 30 #Javascript
JavaScript实现滑动导航栏效果
Aug 30 #Javascript
详解vue-cli 构建Vue项目遇到的坑
Aug 30 #Javascript
前端开发不得不知的10个最佳ES6特性
Aug 30 #Javascript
vue.js的手脚架vue-cli项目搭建的步骤
Aug 30 #Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
Aug 30 #Javascript
详解使用nvm管理多版本node的方法
Aug 30 #Javascript
You might like
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php获取url参数方法总结
2014/11/13 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
python3让print输出不换行的方法
2020/08/24 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
校三好学生主要事迹
2014/01/11 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
公司任命书范本
2014/06/04 职场文书
商务邀请函
2015/01/30 职场文书
调解书格式范本
2015/05/20 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
董事长开业致辞
2015/07/29 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
Win11开始菜单添加休眠选项
2022/04/19 数码科技