自写图片遮罩层放大功能jquery插件源码,photobox.js 1.0版,不兼容IE6

本文主要是介绍自写图片遮罩层放大功能jquery插件源码,photobox.js 1.0版,不兼容IE6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阿嚏~~~

话说本屌丝没啥开发插件的经验,但是天公不作美,公司需要让我自己开发个图片放大的插件


但公司老大的话,犹如吾皇之圣旨,微臣必当肝脑涂地,莫敢不从啊~~~

于是乎,作为一个超级小白,本人只能瞎研究了,幸好黑天不负屌丝人,本屌丝终于搞出来了,虽然不尽善尽美,但是功能还是可以用的啦

先附上源码,求各种大神指导:

/******************************** 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){//如果设置显示关闭按钮,则显示$.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(){//图片关闭按钮var $close = $('<a></a>');//关闭按钮$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){//如果设置显示关闭按钮$("#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要小于图片层的zIndexautoresize:true};
})(jQuery);

附张效果图:



逻辑很简单,因为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});

一看名字就明白了,分别代表显示关闭按钮(ps:关闭按钮的图标自己搞,我这就没上传了,去找你们亲爱的美工妹妹要把,送给你一个跟美工妹妹亲亲我我的机会,感动吧!)、显示title,就是在图片下面有句话,对这个图片做个简单介绍、速度,单位毫秒,自己体验吧~~

目前只是1.0版,本人也菜鸟一枚,欢迎高手们给本菜鸟指导下,不胜感激!


有任何疑问或指教,请加本屌丝QQ:1740437

同时,有喜欢民乐,爱好古风,爱好拍摄逗逼微电影的,也可以和本屌丝做个朋友,哇嘎嘎~~~




这篇关于自写图片遮罩层放大功能jquery插件源码,photobox.js 1.0版,不兼容IE6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992921

相关文章

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

Python多任务爬虫实现爬取图片和GDP数据

《Python多任务爬虫实现爬取图片和GDP数据》本文主要介绍了基于FastAPI开发Web站点的方法,包括搭建Web服务器、处理图片资源、实现多任务爬虫和数据可视化,同时,还简要介绍了Python爬... 目录一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

VS Code中的Python代码格式化插件示例讲解

《VSCode中的Python代码格式化插件示例讲解》在Java开发过程中,代码的规范性和可读性至关重要,一个团队中如果每个开发者的代码风格各异,会给代码的维护、审查和协作带来极大的困难,这篇文章主... 目录前言如何安装与配置使用建议与技巧如何选择总结前言在 VS Code 中,有几款非常出色的 pyt

利用Python将PDF文件转换为PNG图片的代码示例

《利用Python将PDF文件转换为PNG图片的代码示例》在日常工作和开发中,我们经常需要处理各种文档格式,PDF作为一种通用且跨平台的文档格式,被广泛应用于合同、报告、电子书等场景,然而,有时我们需... 目录引言为什么选择 python 进行 PDF 转 PNG?Spire.PDF for Python

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay