纯JS的图片双击放大(自适应)再点击缩小功能

这段代码展示了如何使用JavaScript实现图片预览功能,当用户点击小图时,弹出一个大图预览窗口,并根据屏幕尺寸进行适配。如果图片链接指向word或excel文件,会显示相应的下载提示。代码还包含了图片循环展示和关闭预览窗口的交互逻辑。
摘要由CSDN通过智能技术生成

直接上代码

js代码

imgShow = function(_this){
		var outerdiv = "#outerdiv";
		var innerdiv = "#innerdiv";
		var bigimg = "#bigimg";
		var src = _this.attributes.src.nodeValue;
		if(src=="/jldbs/jldbs/miniprogram/workaccept/images/word.png"){
		  $.Msg.alert('提示', '下载word文件');
		  return;
		}
		if(src=="/jldbs/jldbs/miniprogram/workaccept/images/excel.png"){
		  $.Msg.alert('提示', '下载excel文件');
		  return;
		}
		$(bigimg).attr("src",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);
			$(bigimg).css("height",imgHeight);
			var w = (windowW-imgWidth)/2;
			var h = (windowH-imgHeight)/2;
			$(innerdiv).css({"top":h,"left":w});
			$(outerdiv).fadeIn("fast");
		});
		$(outerdiv).click(function(){
			$(this).fadeOut("fast");
		});
	}

循环图片

success : function(data) {
				var htmlString = "";
				if(data.length > 0){
					for(var i in data){
						htmlString += '<img class="aaaa" onClick="imgShow(this)" src="/file/'+data[i].id+'" height="60px" width="60px" style="float:left;margin-right:39px;"/>';
					}
					$('#imgItems').append(htmlString);
				}
			}

页面图片放置的位置

<div id="imgItems" style="height:70px" ></div>

页面放大后图片的区域位置(body下就行)

<div id="outerdiv" style="position:fixed;top:0;left:0:background:rgba(0.0.0.0.7);z-index:2;width:100%;height:100%;display:none;">
<div id="innerdiv" style="position:absolute;">
<img id="bigimg" style="border:5px solid #fff;" src="" />
</div>
</div>

end(基本适配所有版本)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值