亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jquery圖片預覽插件實現方法詳解

2019-11-19 11:10:16
字體:
來源:轉載
供稿:網友

一、需求說明

效果如圖:

二、代碼實現

項目結構如圖:

example.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>LIGHTBOX EXAMPLE</title><script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js" ></script><script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script><script type="text/javascript" src="js/jquery-mousewheel.js" ></script><script type="text/javascript" src="js/mylightbox.js" ></script><script type="text/javascript"> $(function(){ // 寫法一: /*LightBox.init({ imgObj : $(".imgPreview"), config : { boxHeight : 300, boxWidth : 500 } });*/ // 寫法二: $(".imgPreview").lightbox({ boxHeight : 300, boxWidth : 500 }); });</script> <link rel="stylesheet" href="css/mylightbox.css" rel="external nofollow" /><link rel="stylesheet"  /></head> <body> <img id="lightImgaa" class="imgPreview" src="images/1.png"/> <img id="lightImgbb" class="imgPreview" src="images/2.png"/></body> </html>

mylightbox.css

.white_content {  display: none;  position: absolute; width: 800px; height: 600px; /*padding: 6px 16px;*/ padding: 0; border: 3px solid rgb(252,252,252, 0.2);  background-color: #f5f6f7;  z-index:1002;  overflow: hidden;}.white_content .con { width: 800px; height: 600px;}.black_overlay {  display: none;  position: absolute;  top: 0%;  left: 0%;  width: 100%;  height: 100%;  background-color:#777777; z-index:1001;  -moz-opacity: 0.8;  opacity:.80;  filter: alpha(opacity=80); } .white_content .close { position: relative; float:right;  clear:both;  width:100%;  text-align:right;  margin:0; z-index: 10; height: 20px; line-height: 20px; background: white;} .white_content .close a {  color:#333;  text-decoration:none;  font-size:14px;  font-weight:700 }

jquery-mousewheel.js(兼容鼠標滾輪事件的一個插件)

mylightbox.js

(function($){ var LightBox = function(lightbox) {  var _this_ = this; // 保存單個lightbox組件 this.lightbox = lightbox; // 默認配置參數 this.config = { // 彈框的默認高度 "boxHeight" : 600, // 彈框的默認寬度 "boxWidth" : 800, // 頁面顯示的縮略圖默認高度 "thumbnailWidth" : 80, // 頁面顯示的縮略圖默認寬度 "thumbnailHeight" : 80 };  var userConfig = lightbox.config; if (userConfig) { // 如果傳入了用戶設置,則使用用戶設置;否則使用默認配置 $.extend(this.config, userConfig); }  var imgObj = lightbox.imgObj; // 需要有圖片預覽功能的img對象(jquery對象) imgObj.width(this.config.thumbnailWidth).height(this.config.thumbnailHeight); // 設置縮略圖大小 // 設置圖片點擊后顯示預覽圖 imgObj.click(function() { _this_.invoke($(this), _this_.config); }); };  LightBox.prototype = {  // 事件驅動方法 invoke : function(imgObj, config) { var _this_ = this; // 存放圖片信息的對象  this.imgInfo = this.getImgInfo(imgObj[0].src, config); var promptHtml = '<div><div id="light" class="white_content">' + '<div class="close"><a class="removePrompt" href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >關閉</a> <a class="resetPosition" href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >重置</a>' + ' <a class="downloadImg" href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >下載</a></div>' + '<div class="con"></div></div>' + '<div id="fade" class="black_overlay"></div></div>';  var imgHtml = '<img id="lightImg" class="ui-content" src="' + this.imgInfo.imgPath + '"/>'; var $imgHtml = $(imgHtml).width(this.imgInfo.imgActualWidth).height(this.imgInfo.imgActualHeight); var $promptHtml = $(promptHtml);  var $whiteContent = $promptHtml.find(".white_content"); var $con = $promptHtml.find(".con"); // 設置自定義的彈框高寬 $whiteContent.width(config.boxWidth).height(config.boxHeight); $con.width(config.boxWidth).height(config.boxHeight); $imgHtml.appendTo($con);  var $body = $("body"); $promptHtml.appendTo($body);  // 設置提示框的樣式 var returnData = this.promptPosition($promptHtml); this.imgInfo.imgOriginTop = returnData.imgOriginTop; this.imgInfo.imgOriginLeft = returnData.imgOriginLeft;  // 綁定事件 $promptHtml.find(".resetPosition").off("click").on("click", function() { // 重置按鈕 _this_.revertImg($promptHtml, _this_.imgInfo); }); $promptHtml.find(".removePrompt").off("click").on("click", function() { // 關閉按鈕 $promptHtml.remove(); }); $promptHtml.find(".downloadImg").off("click").on("click", function() { // 下載按鈕 _this_.downloadImg(_this_.imgInfo.imgPath); });  this.showPrompt($promptHtml); },  // 顯示提示框 showPrompt : function(promptObject) { var $whiteContent = promptObject.find(".white_content"); var $blackOverlay = promptObject.find(".black_overlay"); $whiteContent.show(); $blackOverlay.show(); },  // 對需要顯示的提示框的樣式進行初始化操作 promptPosition : function(promptObject, imgActualHeight, imgActualWidth) {  var _this_ = this;  // 設置提示框水平垂直居中 var $whiteContent = promptObject.find(".white_content"); var $con = $whiteContent.find(".con"); // 存放圖片內容區 var $close = $whiteContent.find(".close"); // 存放“關閉,重置”按鈕區  var leftDistance = ($(window).width() - $whiteContent.outerWidth(false)) / 2; var topDistance = ($(window).height() - $whiteContent.outerHeight(false)) / 2; $whiteContent.css({"left":leftDistance,"top":topDistance});  // 添加在div范圍內的鼠標滾輪事件 窗口滾動  // 鼠標滾動  var $lightImg = $whiteContent.find(".ui-content"); $whiteContent.on("mousewheel", function(event, delta){ var imgWidth = $lightImg.width() * (1 + 0.1 * delta); var imgHeight = $lightImg.height() * (1 + 0.1 * delta); $lightImg.width(imgWidth).height(imgHeight); _this_.setImgCenterPosition($lightImg, $close, $con); });  // 設置待顯示圖片在提示框居中 var data = this.setImgCenterPosition($lightImg, $close, $con);  // 設置圖片可以拖拽 $lightImg.draggable({scroll: true});  // 記錄圖片的初始位置 var returnObj = new Object(); returnObj.imgOriginTop = data.top; returnObj.imgOriginLeft = data.left; return returnObj; },  // 設置圖片在父容器中水平垂直居中顯示 setImgCenterPosition : function(imgObj, closeObj, parentObj) { var imgOriginTop = (parentObj.outerHeight() - closeObj.outerHeight() - imgObj.outerHeight())/2; var imgOriginLeft = (parentObj.outerWidth() - imgObj.outerWidth())/2; var data = {"top" : imgOriginTop, "left" : imgOriginLeft}; imgObj.css(data); return data; },  // 下載圖片 這個只能在chrome上用,firefox,IE都不行① downloadImg : function(imgPath) { var imgFileName = imgPath.substring(imgPath.lastIndexOf("/")+1); // 獲取圖片文件名 var $a = $("<a></a>").attr("href", imgPath).attr("download", imgFileName); $a[0].click(); },  // 將圖片恢復至初始大小,和原始位置 revertImg : function(promptObject, imgInfo) { var $lightImg = promptObject.find(".ui-content"); if ($lightImg.height() != imgInfo.imgActualHeight || $lightImg.width() != imgInfo.imgActualWidth || parseInt($lightImg.css("top")) != imgInfo.imgOriginTop || parseInt($lightImg.css("left")) != imgInfo.imgOriginLeft) { $lightImg.animate({ "height" : imgInfo.imgActualHeight, "width" : imgInfo.imgActualWidth,  "top": imgInfo.imgOriginTop,  "left": imgInfo.imgOriginLeft }); } },  // 獲取圖片信息 getImgInfo : function(imgPath, config) { // 獲取顯示彈框的寬高 var boxHeight = config.boxHeight; var boxWidth = config.boxWidth;  var imgObj = $("<img/>", {"src" : imgPath})[0];  // 獲取圖片的真實寬高 var imgRealHeight = imgObj.height; var imgRealWidth = imgObj.width;  // 計算圖片適應提示框大小后呈現的寬高 var imgActualHeight; var imgActualWidth; if (imgRealHeight / imgRealWidth >= boxHeight / boxWidth) { imgActualHeight = imgRealHeight > boxHeight ? boxHeight : imgRealHeight; imgActualWidth = imgActualHeight / imgRealHeight * imgRealWidth; } else { imgActualWidth = imgRealWidth > boxWidth ? boxWidth : imgRealWidth; imgActualHeight = imgActualWidth / imgRealWidth * imgRealHeight; }  var returnObj = new Object(); returnObj.imgPath = imgPath; returnObj.imgRealHeight = imgRealHeight; returnObj.imgRealWidth = imgRealWidth; returnObj.imgActualHeight = imgActualHeight; returnObj.imgActualWidth = imgActualWidth;  return returnObj; }, };  // 插件供外部調用的兩種寫法 // 方法一: LightBox.init = function(lightboxes) {  var _this_ = this; var imgObjs = lightboxes.imgObj; var config = lightboxes.config;  imgObjs.each(function() { new _this_({ imgObj : $(this), config : config }); });  }; window.LightBox = LightBox;  // 方法二:注冊成jq方法 $.fn.extend({ lightbox : function(config){ this.each(function(){ new LightBox({ imgObj : $(this), config : config }); }); return this; } });}(jQuery));

// 下載圖片 這個只能在chrome上用,firefox,IE都不行①jQuery實現圖片下載代碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品九九久久久久久久| 日韩在线观看免费高清| 欧美特级www| 国产精品久久久久免费a∨| 欧美巨大黑人极品精男| 国产精品影院在线观看| 国产精品久久久久久久久久ktv| 亚洲片国产一区一级在线观看| 国产91亚洲精品| 国产精品一区二区在线| 中文字幕日韩精品在线| 福利精品视频在线| 亚洲精品国产成人| 亚洲国产精品资源| 色综合老司机第九色激情| 亚洲人成欧美中文字幕| 91大神福利视频在线| 国内精品久久久久久| 久久久久免费视频| 国产欧美日韩亚洲精品| 欧美日韩性视频| 一本一本久久a久久精品牛牛影视| 国产欧美va欧美va香蕉在线| 欧美中文字幕在线播放| 北条麻妃一区二区在线观看| 欧美另类高清videos| 欧美日韩高清区| 国产一区二区激情| 国产区亚洲区欧美区| 国产成+人+综合+亚洲欧洲| 在线观看免费高清视频97| 欧美理论电影网| 欧美激情视频播放| 欧美影院在线播放| 中文字幕久久久av一区| 日韩av最新在线| 亚洲片国产一区一级在线观看| 综合网日日天干夜夜久久| 国产精品第1页| 亚洲网站视频福利| 欧美在线一区二区三区四| 久久综合免费视频影院| 国产亚洲精品综合一区91| 国产精品盗摄久久久| 亚洲一区二区日本| 精品久久久91| 久久天堂电影网| 正在播放欧美一区| 国产亚洲美女久久| 尤物精品国产第一福利三区| 91精品国产综合久久男男| 日韩精品视频在线| 国a精品视频大全| 欧美激情视频给我| 中文字幕av一区中文字幕天堂| 国产精品精品视频一区二区三区| 欧洲美女免费图片一区| 亚洲性av网站| 成人精品久久av网站| 成人性教育视频在线观看| 亚洲精品白浆高清久久久久久| 亚洲精品一区久久久久久| 精品一区二区三区四区| 日韩禁在线播放| 日韩欧美一区视频| 亚洲国产美女久久久久| 欧美激情视频免费观看| 亚洲91精品在线观看| 色综合视频一区中文字幕| 秋霞成人午夜鲁丝一区二区三区| 久久久999精品| 久久精品国产成人精品| 精品国产欧美一区二区三区成人| 青青草一区二区| 亚洲欧美国产精品专区久久| 91精品国产高清久久久久久| 亚洲精品视频网上网址在线观看| 国产精品国语对白| 久久韩剧网电视剧| 国产亚洲日本欧美韩国| 亚洲va久久久噜噜噜| 亚洲美女www午夜| 性欧美长视频免费观看不卡| 国产精品亚洲综合天堂夜夜| 中文字幕日韩精品在线| 深夜福利91大全| 欧美巨大黑人极品精男| 久久男人av资源网站| 久久亚洲精品中文字幕冲田杏梨| 国产精品成熟老女人| 欧美激情视频播放| 欧美亚洲国产精品| 欧美激情在线狂野欧美精品| 精品激情国产视频| 91成人精品网站| 精品调教chinesegay| 中文欧美在线视频| 亚洲中国色老太| 欧美电影免费观看电视剧大全| 国产精品pans私拍| 欧美电影免费观看高清完整| 日韩国产激情在线| 色伦专区97中文字幕| 久久精品中文字幕免费mv| 久久伊人91精品综合网站| 九九热最新视频//这里只有精品| 国产成人精品一区二区三区| 26uuu另类亚洲欧美日本老年| 欧美在线视频a| 午夜精品久久久久久久久久久久| 色999日韩欧美国产| 亚洲精选中文字幕| 欧美日韩国产精品| 91久久久精品| 亚洲一区二区三区视频| 国产精品91免费在线| 91av成人在线| 97超碰色婷婷| 亚洲第一视频网站| 国产91久久婷婷一区二区| 亚洲午夜性刺激影院| 热久久免费国产视频| 91成人在线视频| 国外日韩电影在线观看| 亚洲精品成人久久| 亚洲黄色av女优在线观看| 国产精品91久久久| 日韩在线观看免费高清完整版| 亚洲精品自拍第一页| 国产色视频一区| 亚洲精品电影网| 欧美又大又硬又粗bbbbb| 精品久久久久国产| 亚洲在线一区二区| 国产精品永久免费观看| 日韩亚洲欧美成人| 中文字幕日本欧美| 欧美日韩成人精品| 国产成人短视频| 91精品一区二区| 成年无码av片在线| 国产日韩av高清| 日韩中文字幕在线视频播放| 亚洲精品中文字| 中文字幕综合在线| 国产精品中文字幕久久久| 日韩人体视频一二区| 日韩精品在线视频美女| 日韩中文字在线| 日本精品视频在线| 好吊成人免视频| 91在线无精精品一区二区| 亚洲一区二区少妇| 成人欧美在线视频| 九九九久久久久久| 成人黄色大片在线免费观看| 精品国产91久久久| 亚洲专区国产精品| 国产日韩欧美在线| 精品日本美女福利在线观看| 欧美俄罗斯乱妇| 亚洲欧美中文日韩在线| 中文字幕亚洲欧美日韩2019| 国产日韩亚洲欧美|