jQuery实现的点击图片居中放大缩小功能示例


Posted in jQuery onJanuary 16, 2019

本文实例讲述了jQuery实现的点击图片居中放大缩小功能。分享给大家供大家参考,具体如下:

该功能是基于jquery实现的,所以

第一步则是引入jquery

jquery下载地址:https://jquery.com/download/

或者使用此时调试的版本(3版本)

jQuery3.2.1文件点击此处本站下载

第二步:准备HTML文件

<div id="outerdiv" class="wrap">
  <div id="innerdiv" style="position:absolute;">
   <img id="bigimg" style="border:5px solid #fff;" src=""/>
  </div>
</div>

第三步:准备style

.wrap {
 position: fixed;
 top: 0;
 left: 0;
 background: rgba(0, 0, 0, 0.7);
 z-index: 2;
 width: 100%;
 height: 100%;
 display: none;
}

第四步:编写可以放大缩小的js

$(function(){
  $(".goal_img").click(function(){
   var _this = $(this);//将当前的pimg元素作为_this传入函数
   imgShow("#outerdiv", "#innerdiv", "#bigimg", _this);
  });
});

实现的功能

function imgShow(outerdiv, innerdiv, bigimg, _this){
var src = _this.attr("src");//获取当前点击的pimg元素中的src属性
$(bigimg).attr("src", src);//设置#bigimg元素的src属性
/*获取当前点击图片的真实大小,并显示弹出层及大图*/
$("<img/>").attr("src", src).load(function(){
  var windowW = $(window).width();//获取当前窗口宽度
  var windowH = $(window).height();//获取当前窗口高度
  var realWidth = this.width;//获取图片真实宽度
  var realHeight = this.height;//获取图片真实高度
  var imgWidth, imgHeight;
  var scale = 0.8;//缩放尺寸,当图片真实宽度和高度大于窗口宽度和高度时进行缩放
  if(realHeight>windowH*scale) {//判断图片高度
   imgHeight = windowH*scale;//如大于窗口高度,图片高度进行缩放
   imgWidth = imgHeight/realHeight*realWidth;//等比例缩放宽度
   if(imgWidth>windowW*scale) {//如宽度扔大于窗口宽度
    imgWidth = windowW*scale;//再对宽度进行缩放
   }
  } else if(realWidth>windowW*scale) {//如图片高度合适,判断图片宽度
   imgWidth = windowW*scale;//如大于窗口宽度,图片宽度进行缩放
      imgHeight = imgWidth/realWidth*realHeight;//等比例缩放高度
  } else {//如果图片真实高度和宽度都符合要求,高宽不变
   imgWidth = realWidth;
   imgHeight = realHeight;
  }
  $(bigimg).css("width",imgWidth);//以最终的宽度对图片缩放
  var w = (windowW-imgWidth)/2;//计算图片与窗口左边距
  var h = (windowH-imgHeight)/2;//计算图片与窗口上边距
  $(innerdiv).css({"top":h, "left":w});//设置#innerdiv的top和left属性
  $(outerdiv).fadeIn("fast");//淡入显示#outerdiv及.goal_img
 });
 $(outerdiv).click(function(){//再次点击淡出消失弹出层
  $(this).fadeOut("fast");
 });
}

通过以上简单的基本即可实现jquery 实现点击图片居住放大缩小。

上述代码有参考多个牛人的整理的。仅供学习记录,备后续开发学习使用。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jquery.validate表单验证插件使用详解
Jun 21 jQuery
基于jQuery的左滑出现删除按钮的示例
Aug 29 jQuery
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 jQuery
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
Jquery异步上传文件代码实例
Nov 13 jQuery
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
jQuery+vue.js实现的多选下拉列表功能示例
Jan 15 #jQuery
jQuery实现的中英文切换功能示例
Jan 11 #jQuery
jQuery简单实现根据日期计算星期几的方法
Jan 09 #jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 #jQuery
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 #jQuery
jQuery实现的别踩白块小游戏完整示例
Jan 07 #jQuery
jQuery判断自定义属性data-val用法示例
Jan 07 #jQuery
You might like
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
php实现微信支付之现金红包
2018/05/30 PHP
JS 事件绑定函数代码
2010/04/28 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
python使用pil生成缩略图的方法
2015/03/26 Python
python实现SOM算法
2018/02/23 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
python保留小数位的三种实现方法
2020/01/07 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
校园公益广告语
2014/03/13 职场文书
市级文明单位申报材料
2014/05/07 职场文书
南湾猴岛导游词
2015/02/09 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python