您现在的位置是:网站首页> 编程资料编程资料
基于JS实现点击图片在弹出层显示大图效果_javascript技巧_
2023-05-24
316人已围观
简介 基于JS实现点击图片在弹出层显示大图效果_javascript技巧_
Javascript是个好东西。
Jquery是基于这个好东西的一个强大的库。
今天要实现的功能是基于这两个玩意儿的。
点击图片,在弹出层显示原图。
大概效果是这样的:

上代码:
先是html部分:
Js部分:
$(function(){ $("#plus").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属性 /*获取当前点击图片的真实大小,并显示弹出层及大图*/ $("
").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及.pimg }); $(outerdiv).click(function(){//再次点击淡出消失弹出层 $(this).fadeOut("fast"); }); }20220617补充:
PC端的图片放大使用上边的代码即可,但是在移动端的时候我们就需要用到两指放大缩小功能,然后还要加上单指移动的功能,
基础代码还是与上边一样,我就不废话了,直接上完整的代码:
Document
效果如下图所示:

到此这篇关于基于JS实现点击图片在弹出层显示大图效果的文章就介绍到这了,更多相关JS弹出层显示大图内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- vue中echarts关系图动态增删节点以及连线方式_vue.js_
- vue中关于_ob_:observer的处理方式_vue.js_
- 如何解决ElementUI导航栏重复点菜单报错问题_vue.js_
- Vue router/Element重复点击导航路由报错问题及解决_vue.js_
- echarts如何实现动态曲线图(多条曲线)_javascript技巧_
- vue表格(table)计算总计方式_vue.js_
- vue将数字转为中文大写金额方式_vue.js_
- Vue封装--如何将数字转换成万_vue.js_
- vue中兄弟组件传值的两种方式小结_vue.js_
- Vue中.prettierrc文件的常见配置(浅显易懂)_vue.js_


