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 相关文章推荐
jQuery实现视频作为全屏幕背景
Dec 18 Javascript
JavaScript中通过提示框跳转页面的方法
Feb 14 Javascript
javascript每日必学之基础入门
Feb 16 Javascript
bootstrap模态框实现拖拽效果
Dec 14 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
Dec 25 Javascript
微信小程序获取手机号授权用户登录功能
Nov 09 Javascript
Vue.js用法详解
Nov 13 Javascript
微信小程序实现红包雨功能
Jul 11 Javascript
ng-events类似ionic中Events的angular全局事件
Sep 05 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
Sep 15 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
Mar 11 Javascript
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 29 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
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
jQuery1.6 使用方法一
2011/11/23 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
Python中操作MySQL入门实例
2015/02/08 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
提升Python程序性能的7个习惯
2019/04/14 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
解决Python中回文数和质数的问题
2019/11/24 Python
python读取Kafka实例
2019/12/23 Python
python 实现按对象传值
2019/12/26 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
奥巴马获胜演讲稿
2014/05/15 职场文书
公司委托书格式
2014/08/01 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
公司租车协议书
2015/01/29 职场文书
2015年计划生育责任书
2015/05/08 职场文书
在Python中如何使用yield
2021/06/07 Python