自寫圖片遮罩層放大功能jquery插件源代碼,photobox.js 1.0版,不兼容IE6

版權聲明:本文為博主原創文章。未經博主同意不得轉載。 https://blog.csdn.net/u010480479/article/details/27362147

阿嚏~~~

話說本屌絲沒啥開發插件的經驗,可是天公不作美,公司須要讓我自己開發個圖片放大的插件


但公司老大的話,宛如吾皇之圣旨,微臣必當肝腦涂地。莫敢不從啊~~~

于是乎,作為一個超級小白。本人僅僅能瞎研究了,幸好黑天不負屌絲人。本屌絲最終搞出來了。盡管不盡善盡美,可是功能還是能夠用的啦

先附上源代碼。求各種大神指導:

/******************************** photobox跨瀏覽器兼容插件 v1.0(不支持IE6)* 格式:<a href="big.jpg" id="b1" title="我就是一坨屎,你來咬我啊!

"><img src="small.jpg"></a>///$("#b1").photobox(); *******************************/ ;(function($){ $.fn.photobox = function(options){ var opts = $.extend({}, $.fn.photobox.defaults, options);//整合參數 return this.each(function(){ $(this).click(function(){ if(opts.showshadow){//假設設置顯示陰影遮罩層。則顯示 $.fn.photobox.shadow(opts.shadowOptions); } if(opts.showbox){//假設設置顯示圖片邊框。則顯示 $.fn.photobox.box(); } if(opts.showclosebtn){//假設設置顯示關閉button。則顯示 $.fn.photobox.closebtn(); } var $this = $(this); var imgSrc = $this.attr("href"); var title = $this.attr("title"); var bigImg = new Image();//用js來獲取圖片高度和寬度 bigImg.src = imgSrc; var h = bigImg.height; var w = bigImg.width; var $bigphoto = $('<img src="'+imgSrc+'" rel="photobox">'); var wh = $(window).height(); var ww = $(window).width(); $bigphoto.css({ "width":"0px" , "height":"0px", "z-index":"10000", "opacity":0 }); $("#pb_box").append($bigphoto); if(opts.showtitle){//顯示title $.fn.photobox.title(title); } //大家一起show $("#boxshadow").stop(true).fadeIn(opts.speed); var title_h = 0; title_h = opts.showtitle ? 20 : 0 ; $("#pb_box").stop(true).animate({ "width":w+"px", "height":h+title_h+"px", "top":parseInt((wh-h-title_h)/2)+"px", "left":parseInt((ww-w)/2)+"px", "opacity":1 },opts.speed); if(opts.showclosebtn){ $("#pb_closebtn").stop(true).animate({ "width":"31px", "height":"32px", "opacity":1 },opts.speed); } $bigphoto.stop(true).animate({ "width":w+"px", "height":h+"px", "opacity":1 },opts.speed); if(opts.showtitle){ $("#pb_phototitle").stop(true).animate({ "height":"20px", "width":w+"px", "opacity":1 },opts.speed); } $.fn.photobox.close(); $.fn.photobox.resize(); return false;//防止a標簽跳轉 }); }); }; $.fn.photobox.shadow = function(options){//加入背景陰影遮罩層 var shadowOptions = {"width":"100%","height":"100%","position":"fixed","top":"0","left":"0","display":"none"}; var $boxshadow=$('<div></div>'); $boxshadow.attr({"id":"boxshadow"}); $boxshadow.css(shadowOptions); $boxshadow.css(options); $("body").append($boxshadow); }; $.fn.photobox.box = function(){ var wh = $(window).height(); var ww = $(window).width(); var $box = $('<div></div>');//包裹圖片的div $box.attr({"id":"pb_box"}); $box.css({"background-color": "#fff","padding": "10px","position": "fixed","opacity": "0","width": "0px","height":" 0px","top": parseInt(wh/2)+"px","left":parseInt(ww/2)+"px","z-index":10000}); $("body").append($box); }; $.fn.photobox.closebtn = function(){//圖片關閉button var $close = $('<a></a>');//關閉button $close.attr({"id":"pb_closebtn"}); $close.css({"background": "url('css/web/images/close.png')","position": "absolute","opacity": "0","width": "0px","height":" 0px","top": "-15px","right":"-15px","z-index":10000}); $("#pb_box").append($close); }; $.fn.photobox.title = function(title){ var $title = $('<span></span>');//圖片title $title.attr({"id":"pb_phototitle"}); $title.css({"line-height":"20px","color":"#1e2024","text-align":"center"}); $title.html(title); $("img[rel='photobox']").after($title); }; $.fn.photobox.close = function(){ $("#boxshadow,#pb_closebtn").click(function(){ var wh = $(window).height(); var ww = $(window).width(); $("#boxshadow").fadeOut($.fn.photobox.defaults.speed,function(){ $(this).remove(); }); $("#pb_box").animate({ "width":"20px", "height":"20px", "top":parseInt(wh/2)+"px", "left":parseInt(ww/2)+"px", "opacity":0 },$.fn.photobox.defaults.speed,function(){ $(this).remove(); }); $("img[rel='photobox']").animate({ "width":"0px", "height":"0px", "opacity":0 },$.fn.photobox.defaults.speed,function(){ $(this).remove(); }); if(opts.showclosebtn){//假設設置顯示關閉button $("#pb_closebtn").stop(true).animate({ "width":"0px", "height":"0px", "opacity":0 },$.fn.photobox.defaults.speed,function(){ $(this).remove(); }); } if(opts.showtitle){ $("#pb_phototitle").stop(true).animate({ "height":"0px", "width":"0px", "opacity":0 },$.fn.photobox.defaults.speed,function(){ $(this).remove(); }); } }); }; $.fn.photobox.resize = function(){ $(window).resize(function(){ if($("body").has($("#pb_box"))){ var wh = $(window).height(); var ww = $(window).width(); var h = $("#pb_box").height(); var w = $("#pb_box").width(); $("#pb_box").stop(true).animate({ 'top':(wh-h)/2 +'px', 'left':(ww-w)/2 +'px' },100); } }); }; $.fn.photobox.defaults = { showclosebtn:true, showtitle:true, speed:400, //以下參數臨時不同意用戶改動 showshadow:true, showbox:true, showoverlay:true,//此功能暫未開放 shadowOptions:{ "background-color": "#000", "opacity": 0.6 , "z-index": 9999},//遮罩層的zIndex要小于圖片層的zIndex autoresize:true }; })(jQuery);


附張效果圖:



邏輯非常easy,由于IE6比較屎。如今絕大多數開發也不考慮他了,so。本屌絲也沒考慮他,以后會不斷完好,怎樣使用,請上觀js頂部豬屎

格式:<a href="big.jpg" id="b1" title="我就是一坨屎。你來咬我啊!

"><img src="small.jpg"></a>///$("#b1").photobox();

參數傳遞。眼下僅僅能傳遞三個參數。多了這貨也不吊你,為了省事。我把css樣式都寫在js里面了,以后會都提出來,使代碼更規范。

$("#b1").photobox({showclosebtn:true,showtitle:true,speed:500});

一看名字就明確了,分別代表顯示關閉button(ps:關閉button的圖標自己搞。我這就沒上傳了。去找你們親愛的美工妹妹要把,送給你一個跟美工妹妹親親我我的機會,感動吧!)、顯示title,就是在圖片以下有句話,對這個圖片做個簡介、速度,單位毫秒,自己體驗吧~~

眼下僅僅是1.0版。本人也菜鳥一枚,歡迎高手們給本菜鳥指導下。不勝感激!


有不論什么疑問或不吝賜教。請加本屌絲QQ:1740437

同一時候,有喜歡民樂。愛好古風。愛好拍攝逗逼微電影的,也能夠和本屌絲做個朋友。哇嘎嘎~~~




轉載于:https://www.cnblogs.com/mqxnongmin/p/10662749.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248193.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248193.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248193.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

黑白兩客進入頁面(1)

<div><span>歡</span><span>迎</span><span>來</span><span>到</span><span><strong>黑白兩客</strong></span><span>的</span><span>博</span><span>客</sp…

zookeeper學習之原理

一、zookeeper 是什么 Zookeeper是一個分布式協調服務&#xff0c;可用于服務發現&#xff0c;分布式鎖&#xff0c;分布式領導選舉&#xff0c;配置管理等。這一切的基礎&#xff0c;都是Zookeeper提供了一個類似于Linux文件系統的樹形結構&#xff08;可認為是輕量級的內存文…

mysql鎖表查詢和解鎖操作

解除正在死鎖的狀態有兩種方法&#xff1a; 第一種&#xff1a; 1.查詢是否鎖表 show OPEN TABLES where In_use > 0; 2.查詢進程&#xff08;如果您有SUPER權限&#xff0c;您可以看到所有線程。否則&#xff0c;您只能看到您自己的線程&#xff09; show processlist 3.殺…

前端js基礎智能機器人

<script>var flag true;while(flag) {//獲取用戶輸入信息 var code prompt(你好,我是小娜\n請輸入編號或者關鍵詞選擇功能,輸入Q(q)退出聊天\n1.計算\n2.時間\n3.笑話);switch( code ) {case q:case Q:alert(狠心的拋棄了小娜);flag false;break;case 1:case 計算:var…

2018-2019-2 《Java程序設計》第6周學習總結

20175319 2018-2019-2 《Java程序設計》第6周學習總結 教材學習內容總結 本周學習《Java程序設計》第七章和第十章&#xff1a; 內部類&#xff1a; 1.內部類可以使用外嵌類的成員變量和方法。 2.類體中不可以聲明類變量和類方法。 3.內部類僅供外嵌類使用。 4.類聲明可以使用s…

Hbase基本原理

一、hbase是什么 HBase 是一種類似于數據庫的存儲層&#xff0c;也就是說 HBase 適用于結構化的存儲。并且 HBase 是一種列式的分布式數據庫&#xff0c;是由當年的 Google 公布的 BigTable 的論文而生。HBase 底層依舊依賴 HDFS 來作為其物理存儲。 二、hbase的列式存儲結構 行…

最終的動畫函數封裝(2)

<button>點擊觸發1</button><button>點擊觸發2</button><div></div><style>*{margin: 0;padding: 0;}div{width: 100px;height: 100px;background-color: red;position: relative;top: 100px;left: 0;}.div1{display: block;width: …

第二次JAVA作業

感覺和C語言后面都差不多&#xff0c;就是開頭的定義和輸入輸出有點差別&#xff0c;多寫幾次應該能搞清楚開頭的定義&#xff0c;接下來是四道題目的截圖。 第一題&#xff1a; 第二題&#xff1a; 第三題&#xff1a; 第四題&#xff1a; 轉載于:https://www.cnblogs.com/YSh…

springmvc框架下Filter過濾器中過濾文件后 后續 controller為空的問題

開發過程中遇到過濾文件類型的問題&#xff0c;需要校驗文件的頭信息&#xff0c;&#xff0c;在過濾器中通過request獲取文件流信息 但是后續的controller中的MultipartFile一直都是空的&#xff0c;網上的網友的方案使用了一堆比如 使用BodyReaderHttpServletRequestWrapper…

js(Dom+Bom)第七天(1)

JavaScript BOM介紹 概念 BOM&#xff08;Browser Object Model&#xff09;即瀏覽器對象模型。 本質&#xff1a; 通過對象抽象瀏覽器中的一些功能 例如&#xff1a;&#xff08;刷新頁面&#xff0c;alert,confirm,pormpt,跳轉 ...&#xff09;BOM頂級對象 window對象是js中…

「十二省聯考 2019」皮配——dp

題目 【題目描述】 #### 題目背景一年一度的綜藝節目《中國好碼農》又開始了。本季度&#xff0c;好碼農由 Yazid、Zayid、小 R、大 R 四位夢想導師坐鎮&#xff0c;他們都將組建自己的夢想戰隊&#xff0c;并率領隊員向夢想發起沖擊。 四位導師的**派系**不盡相同&#xff0c;…

收藏一個在線思維導圖的制作網站

https://www.processon.com/ 轉載于:https://www.cnblogs.com/132818Creator/p/11447077.html

js(Dom+Bom)第七天(2)

webAPI 01-動畫封裝 應用到的知識點 點擊事件 給元素設置一個絕對定位 定時器(setInterval) 封裝動畫1的步驟: 讓元素設置為絕定位設置元素的開始位置(從哪開始移動)設置元素的目標位置(移動到哪)設置元素每次移動的距離設置元素每次移動的時間間隔(越短越好) 封裝動畫1遇…

鏈表中環的入口結點

題目描述 給一個鏈表&#xff0c;若其中包含環&#xff0c;請找出該鏈表的環的入口結點&#xff0c;否則&#xff0c;輸出null。 分析 第一步&#xff1a;確定一個鏈表中是否有環 我們可以用兩個指針來解決&#xff0c;定義兩個指針&#xff0c;同時從鏈表的頭結點觸發&#xf…

java 線程之線程狀態

Thread 類中的線程狀態&#xff1a; public enum State {NEW,//新建RUNNABLE,// 執行態BLOCKED, //等待鎖&#xff08;在獲取鎖的池子里&#xff09;WAITING,//等待狀態TIMED_WAITING,//定時等待TERMINATED; //終止 } 創建狀態&#xff08;NEW&#xff09;&#xff1a;當一個線…

目標元素拖動

<div class"box"><div class"title">拖拽效果</div></div>* {margin: 0;padding: 0;}.box {width: 350px;height: 300px;border: 1px solid #ccc;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);cursor…

操作系統原理之內存管理(第四章第二部分)

一、基本分頁存儲管理方式 1、分?存儲管理的基本原理&#xff1a; 頁&#xff1a;將?個進程的邏輯地址空間分成若?個??相等的?頁框&#xff1a;將物理內存空間分成與???相同的若?個存儲塊分?存儲&#xff1a;將進程中的若??分別裝?多個可以不相鄰的?框中頁內碎片…

C#代碼總結02---使用泛型來獲取Asp前臺頁面全部控件,并進行屬性修改

該方法&#xff1a;主要用于對前臺頁面的不同類型&#xff08;TextBox、DropDownList、等&#xff09;或全部控件進行批量操作&#xff0c;用于批量修改其屬性&#xff08;如&#xff0c;Text、Enable&#xff09;。 private void GetControlList<T>(ControlCollection c…

d3.js 教程 模仿echarts柱狀圖

由于最近工作不是很忙&#xff0c;隧由把之前的charts項目用d3.js重寫的一下&#xff0c;其實d3.js文檔很多&#xff0c;但是入門不是很難&#xff0c;可是想真的能做一個完成的&#xff0c;交互良好的圖還是要下一番功夫的。今天在echarts找到了一個柱狀圖&#xff0c;如圖。 …

簡單的動畫函數封裝(2)

<div></div><!-- <span></span> --><button class"btn1">點擊500</button><button class"btn2">點擊800</button>div{width: 100px;height: 100px;background-color: red;position: absolute;top: …