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解析获取JSON数据
Apr 08 jQuery
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
jquery tmpl模板(实例讲解)
Sep 02 jQuery
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
jQuery 实现扁平式小清新导航
Jul 07 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提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
php实现的用户查询类实例
2015/06/18 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
JavaScript事件列表解说
2006/12/22 Javascript
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python bisect模块原理及常见实例
2020/06/17 Python
求高于平均分的学生学号及成绩
2016/09/01 面试题
小学防溺水制度
2014/01/29 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
高中军训感言800字
2014/03/05 职场文书
法律六进活动方案
2014/03/13 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
生日寿星公答谢词
2015/09/29 职场文书
2015年度女工工作总结
2015/10/22 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript