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插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
jQuery复合事件用法示例
Jun 10 jQuery
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 jQuery
jQuery表单设置值的方法
Jun 30 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
vue.js2.0点击获取自己的属性和jquery方法
Feb 23 jQuery
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
jQuery 动画与停止动画效果实例详解
May 19 jQuery
jquery自定义组件实例详解
Dec 31 jQuery
jquery实现点击左右按钮切换图片
Jan 27 jQuery
jquery插件实现悬浮的菜单
Apr 24 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
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
PHP实现简单的计算器
2020/08/28 PHP
Google韩国首页图标动画效果
2007/08/26 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
javascript事件模型介绍
2016/05/31 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
巧用canvas
2017/01/21 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
python中xrange用法分析
2015/04/15 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
python如何实现数据的线性拟合
2019/07/19 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
Python LMDB库的使用示例
2021/02/14 Python
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
公司活动邀请函
2014/01/24 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL
idea下配置tomcat避坑详解
2022/04/12 Servers