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中的deferred使用方法
Mar 27 jQuery
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
浅谈jquery fullpage 插件增加头部和版权的方法
Mar 20 jQuery
jQuery简单判断值是否存在于数组中的方法示例
Apr 17 jQuery
详解使用jQuery.i18n.properties实现js国际化
May 04 jQuery
jquery 动态遍历select 赋值的实例
Sep 12 jQuery
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 jQuery
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
jQuery实现飞机大战小游戏
Jul 05 jQuery
jQuery中getJSON跨域原理的深入讲解
Sep 02 jQuery
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
Mar 31 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
jquery 常用操作方法
2010/01/28 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
python绘制热力图heatmap
2020/03/23 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
Python如何实现远程方法调用
2020/08/07 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
医院工作检讨书范文
2014/02/10 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
学生偷窃检讨书
2014/09/25 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL