关于一项图片显示弹框的小插件

js的函数代码块

		//图片回显预览,查看图片 --#start
		var showImg_wc_solveProblem = {
			imgData: [], //图片数组   [{fileName:"123.jpg", fileUrl:"abc/123.jpg"},{fileName:"123.jpg", fileUrl:"abc/123.jpg"}]
			indexImg: 0, //第几张图片
			imgRotate: 0, //旋转角度
			thisObj: "", //图片回显model的id
			initEvent: function (obj, data) {
				var me = this;
				me.imgData = data; //图片数组
				me.indexImg = 0; //第几张图片
				me.imgRotate = 0; //旋转角度
				obj = obj || me.thisObj;
				me.thisObj = obj;

				if (me.imgData.length == 1) {
					$(obj + ' .js_imgNext').css('color', 'gray');
					$(obj + ' .js_imgNext').attr("title", "已经是最后一张");
				} else {
					$(obj + ' .js_imgNext').attr('href', 'javascript:;');
					$(obj + ' .js_imgNext').css('color', 'rgb(42, 100, 150)');
				}
				$(obj + ' .imgName').text(me.imgData[0].fileName);
				$(obj + ' .js_imgSrc').attr("src", me.imgData[0].fileUrl);
				$(obj + ' .js_imgSrc').css("position", 'static');
				$(obj + ' .js_imgSrc').css("width", '40%');
				$(obj + ' .js_imgPrev').css('color', 'gray');
				$(obj + ' .js_imgPrev').attr("title", "已经是第一张");
				$(obj + ' .modal-body').css("height", window.screen.height * 0.7);
				$(obj + ' p').css("line-height", window.screen.height * 0.7 - 30 + "px");
				$(obj).modal("show");

				//上一张
				$(obj + ' .js_imgPrev').unbind().click(function () {
					if (me.indexImg <= 0) {
						return;
					} else {
						$(obj + ' .js_imgSrc').get(0).style.width = 40 + '%';
						$(obj + ' .imgName').text(me.imgData[me.indexImg - 1].fileName);
						$(obj + ' img').attr("src", me.imgData[me.indexImg - 1].fileUrl);
						me.indexImg = me.indexImg - 1;
						$(obj + ' .js_imgNext').css("color", "#2a6496");
						$(obj + ' .js_imgNext').attr("href", "javascript:;");
						if (me.indexImg == 0) {
							$(obj + ' .js_imgPrev').css("color", "gray");
							$(obj + ' .js_imgPrev').attr("title", "已经是第一张");
							$(obj + ' .js_imgPrev').removeAttr("href");
						}
						me.imgRotate = 0;
						rotateExec(me.imgRotate)
					}
				})
				//下一张
				$(obj + ' .js_imgNext').unbind().click(function () {
					if (me.indexImg >= me.imgData.length - 1) {
						return;
					} else {
						$(obj + ' .js_imgSrc').get(0).style.width = 40 + '%';
						$(obj + ' .imgName').text(me.imgData[me.indexImg + 1].fileName);
						$(obj + ' img').attr("src", me.imgData[me.indexImg + 1].fileUrl);
						me.indexImg = me.indexImg + 1;
						$(obj + ' .js_imgPrev').css("color", "#2a6496");
						$(obj + ' .js_imgPrev').attr("href", "javascript:;");
						if (me.indexImg == me.imgData.length - 1) {
							$(obj + ' .js_imgNext').css("color", "gray");
							$(obj + ' .js_imgNext').attr("title", "已经是最后一张");
							$(obj + ' .js_imgNext').removeAttr("href");
						}
						me.imgRotate = 0;
						rotateExec(me.imgRotate)
					}
				})
				//放大图片按钮
				$(obj + ' .js_imgLarge').unbind().click(function () {
					var width = parseInt($(obj + ' .js_imgSrc').get(0).style.width);
					if (width != 150) {
						width += 10;
						$(obj + ' .js_imgSrc').get(0).style.width = width + '%';
					}
				})
				//缩小图片按钮
				$(obj + ' .js_imgSmall').unbind().click(function () {
					var width = parseInt($(obj + ' .js_imgSrc').get(0).style.width);
					if (width != 40) {
						width -= 10;
						$(obj + ' .js_imgSrc').get(0).style.width = width + '%';
					}
				})
				//还原图片按钮
				$(obj + ' .js_imgReturn').unbind().click(function () {
					me.imgRotate = 0;
					rotateExec(me.imgRotate)
					$(obj + ' .js_imgSrc').get(0).style.width = 40 + '%';
					$(obj + ' .js_imgSrc').css("position", "static");
				})
				$(obj + ' .js_imgReturn').click(); //初始时显示时还原一下

				//左旋转按钮
				$(obj + ' .js_imgRotateLeft').unbind().click(function () {
					me.imgRotate -= 90;
					rotateExec(me.imgRotate)
				})
				//右旋转按钮
				$(obj + ' .js_imgRotateRight').unbind().click(function () {
					me.imgRotate += 90;
					rotateExec(me.imgRotate)
				})
				//旋转图片
				function rotateExec(R) {
					console.log(R)
					R = R % 360;
					if (R < 0) {
						R = R + 360
					}
					$(obj + ' .js_imgSrc').removeClass('rotate_0').removeClass('rotate_90').removeClass('rotate_180').removeClass(
						'rotate_270').addClass('rotate_' + R);
				}

				//鼠标移进显示按钮 
				$(obj + ' .modal-body').mouseover(function () {
					$(obj + ' .js_imgNext').show();
					$(obj + ' .js_imgPrev').show();
					$(obj + ' .operatorDiv').show();
				})
				//鼠标移出隐藏按钮
				$(obj + ' .modal-body').mouseout(function () {
					$(obj + ' .js_imgNext').hide();
					$(obj + ' .js_imgPrev').hide();
					$(obj + ' .operatorDiv').hide();
				})
			},
			wheelEvent: function (obj, event) { //鼠标滚- 图片放大缩小
				var me = this;
				obj = obj || me.thisObj;
				me.thisObj = obj;
				if (window.addEventListener) {
					window.addEventListener('DOMMouseScroll', me.wheelEvent, false);
				}
				var delta = 0;
				if (!event) {
					event = window.event
				}
				if (event.wheelDelta) {
					delta = event.wheelDelta / 120;
					if (window.opera) {
						delta = -delta
					}
				} else if (event.detail) {
					delta = -event.detail / 3;
				}
				if (delta) {
					changeImg(delta)
				}

				function changeImg(delta) {
					var width = parseInt($(obj + ' .js_imgSrc').get(0).style.width, 10) || 40;
					width += delta * 10;
					if (width >= 40 && width <= 150) {
						$(obj + ' .js_imgSrc').get(0).style.width = width + '%';
					} else {
						return false;
					}
				}
			} //end wheelEvent
		} //end showImg
		//图片回显预览,查看图片 --#end

html弹出模态框

	<!-- 点击新增里面弹出弹框 -->
				<%-- 图片回显预览dom start--%>
				<div class="modal fade" id="pictureModal_wc_solveProblem" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
				 aria-hidden="true">
					<div class="modal-dialog" style="width:1000px;">
						<div class="modal-content">
							<div class="modal-body" style="overflow: hidden;" onselectstart="return false">
								<span class="imgName"></span>
								<a class="closeBtn icon-remove-circle" data-dismiss="modal"></a>
								<a class="js_imgPrev icon-chevron-left" style="left:30px"></a>
								<a class="js_imgNext icon-chevron-right" style="right: 30px;"></a>
								<div class="operatorDiv">
									<a title="放大" class="js_imgLarge icon-zoom-in"></a>
									<a title="缩小" class="js_imgSmall icon-zoom-out"></a>
									<a title="还原" class="js_imgReturn icon-refresh"></a>
									<a title="左旋转" class="js_imgRotateLeft icon-undo" style="background:none;"></a>
									<a title="右旋转" class="js_imgRotateRight icon-repeat"></a>
								</div>
								<p style="text-align: center;"><img class="easyui-draggable js_imgSrc" src="" onmousewheel='showImg_wc_solveProblem.wheelEvent("#pictureModal_wc_solveProblem",event)' /></p>
							</div>
						</div>
					</div>
				</div>
				<%-- 图片回显预览dom end--%>

css的图片样式和模态框样式

	/* 图片样式 #start */
		#pictureModal_wc_solveProblem a:hover{text-decoration: none;}
		#pictureModal_wc_solveProblem a:focus{outline: none;}
		#pictureModal_wc_solveProblem .js_imgNext,#pictureModal_wc_solveProblem .js_imgPrev{position: absolute;top: 46%;z-index: 1000;font-size: 43px;cursor: pointer;color: rgb(42, 100, 150);display: none;}
		#pictureModal_wc_solveProblem .operatorDiv{position: absolute;bottom: 0;left: 35.5%;background: rgb(83, 75, 75);padding: 13px 20px;z-index:1000;display: none;}
		#pictureModal_wc_solveProblem .operatorDiv a{font-size: 20px;color: #ffffff;padding: 15px;}
		#pictureModal_wc_solveProblem .closeBtn{font-size: 30px;cursor: pointer;position: absolute;right: 15px;z-index: 1000;}
		#pictureModal_wc_solveProblem .rotate_0{filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -o-transform: rotate(0deg);	transform: rotate(0deg);}
		#pictureModal_wc_solveProblem .rotate_90{filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -o-transform: rotate(90deg);	transform: rotate(90deg);}
		#pictureModal_wc_solveProblem .rotate_180{filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -o-transform: rotate	(180deg);transform: rotate(180deg);}
		#pictureModal_wc_solveProblem .rotate_270{filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -o-transform: rotate	(270deg);transform: rotate(270deg);}
		/* 图片样式 #end  */

调用方法

pictureModal_wc_solveProblem 这个是模态框的id

showImg_wc_solveProblem.initEvent('#pictureModal_wc_solveProblem', consumbaleImgList_more)

consumbaleImgList_more这个是传递的参数,其参数格式为

consumbaleImgList_more = [{fileName: "微信图片_20181028110426.jpg", fileUrl: "/usr/mema/doc/workCard/20181205/"}]

效果图如下:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章