jquery经典Lightbox弹出框特效js代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 jquery经典Lightbox弹出框特效js代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

jquery经典Lightbox弹出框特效js代码

HTML代码(index.html):

<!doctype html>
<html lang="en-us">
<head>
    <meta charset="utf-8">
    <title>Lightbox 2</title>
    <meta name="description" lang="en" content="Lightbox 2 is a simple, unobtrusive script used to overlay images on the current page. It's a snap to setup and works on all modern browsers." />
    <meta name="author" content="Lokesh Dhakar">
    <meta name="viewport" content="width=device-width">
    <link rel="shortcut icon" type="image/ico" href="images/favicon.gif" />
    <link rel="stylesheet" href="css/screen.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />

    <!--<link href='http://fonts.googleapis.com/css?family=Fredoka+One|Open+Sans:400,700' rel='stylesheet' type='text/css'>-->

</head>
<body>
    <div id="sidebar">
        <ul id="nav">
            <li><a href="#example" class="first">Example</a></li>
            <li><a href="#how">How to Use</a></li>
        </ul>
    </div>
    <div id="content">
        <hr />
        <div class="section" id="example">
            <h2>Examples</h2>

            <h3>Single image</h3>
            <div class="imageRow">
                <div class="single">
                    <a href="images/examples/image-1.jpg" rel="lightbox"><img src="images/examples/thumb-1.jpg" alt="" /></a>
                </div>
                <div class="single">
                    <a href="images/examples/image-2.jpg" rel="lightbox" title="Optional caption."><img src="images/examples/thumb-2.jpg" alt="" /></a>
                </div>
            </div>

            <h3 style="clear: both;">Image set</h3>

            <div class="imageRow">
                <div class="set">
                    <div class="single first">
                        <a href="images/examples/image-3.jpg" rel="lightbox[plants]" title="Click on the right side of the image to move forward."><img src="images/examples/thumb-3.jpg" alt="Plants: image 1 0f 4 thumb" /></a>
                    </div>
                    <div class="single">
                        <a href="images/examples/image-4.jpg" rel="lightbox[plants]" title="Alternately you can press the right arrow key."><img src="images/examples/thumb-4.jpg" alt="Plants: image 2 0f 4 thumb" /></a>
                    </div>
                    <div class="single">
                        <a href="images/examples/image-5.jpg" rel="lightbox[plants]" title="The script preloads the next image in the set as you're viewing."><img src="images/examples/thumb-5.jpg" alt="Plants: image 3 0f 4 thumb" /></a>
                    </div>
                    <div class="single last">
                        <a href="images/examples/image-6.jpg" rel="lightbox[plants]" title="Click the X or anywhere outside the image to close"><img src="images/examples/thumb-6.jpg" alt="Plants: image 4 0f 4 thumb" /></a>
                    </div>
                </div>
            </div>
        </div>
        <hr />
        <div class="section" id="download">
            <div class="section" id="how">
                <h2>How to use</h2>
                <h3>Part 1 - Setup</h3>
                <ol>
                    <li>
                        Lightbox 2 uses the <a href="#">jQuery</a> framework. Load jQuery and the Lightbox javascript files in the proper order.
<pre><code>&lt;script src=&quot;js/jquery-1.7.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/lightbox.js&quot;&gt;&lt;/script&gt;
</code></pre>
                    </li>
                    <li>
                        Include the Lightbox CSS file.
<pre><code>&lt;link href=&quot;css/lightbox.css&quot; rel=&quot;stylesheet&quot; /&gt;
</code></pre>
                    </li>
                    <li>Check the CSS and make sure the referenced <code>prev.png</code> and <code>next.png</code> files are in the right location. Also, make sure the <code>loading.gif</code> and <code>close.png</code> files as referenced near the top of the <code>lightbox.js</code> file are in the right location.</li>
                </ol>
                <h3>Part 2 - Activate</h3>
                <ol>
                    <li>
                        Add a <code>rel="lightbox"</code> attribute to any link tag to activate Lightbox.
<pre><code>&lt;a href=&quot;images/image-1.jpg&quot; rel=&quot;lightbox&quot; title=&quot;my caption&quot;&gt;image #1&lt;/a&gt;
</code></pre>
                        <em>Optional: </em>Use the <code>title</code> attribute if you want to show a caption.
                    </li>
                    <li>
                        If you have a set of related images that you would like to group, follow step one but additionally include a group name between square brackets in the rel attribute.
<pre><code>&lt;a href=&quot;images/image-1.jpg&quot; rel=&quot;lightbox[roadtrip]&quot;&gt;image #1&lt;/a&gt;
&lt;a href=&quot;images/image-2.jpg&quot; rel=&quot;lightbox[roadtrip]&quot;&gt;image #2&lt;/a&gt;
&lt;a href=&quot;images/image-3.jpg&quot; rel=&quot;lightbox[roadtrip]&quot;&gt;image #3&lt;/a&gt;
</code></pre>
                        No limits to the number of image sets per page or how many images are allowed in each set. Go nuts!
                    </li>
                </ol>
            </div>
            <hr />
        </div><!-- end #content -->
        <script src="js/jquery-1.7.2.min.js"></script>
        <script src="js/jquery-ui-1.8.18.custom.min.js"></script>
        <script src="js/jquery.smooth-scroll.min.js"></script>
        <script src="js/lightbox.js"></script>
        <script>
            jQuery(document).ready(function ($) {
                $('a').smoothScroll({
                    speed: 1000,
                    easing: 'easeInOutCubic'
                });

                $('.showOlderChanges').on('click', function (e) {
                    $('.changelog .old').slideDown('slow');
                    $(this).fadeOut();
                    e.preventDefault();
                })
            });
            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-2196019-1']);
            _gaq.push(['_trackPageview']);

            (function () {
                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
            })();
        </script>
</body>
</html>

JS代码(lightbox.js):

/*Lightbox v2.51by Lokesh Dhakar - http://www.lokeshdhakar.comFor more information,visit:http://lokeshdhakar.com/projects/lightbox2/Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/- free for use in both personal and commercial projects- attribution requires leaving author name,author link,and the license info intactThanks- Scott Upton(uptonic.com),Peter-Paul Koch(quirksmode.com),and Thomas Fuchs(mir.aculo.us) for ideas,libs,and snippets.- Artemy Tregubenko (arty.name) for cleanup and help in updating to latest proto-aculous in v2.05.Table of Contents=================LightboxOptionsLightbox- constructor- init- enable- build- start- changeImage- sizeContainer- showImage- updateNav- updateDetails- preloadNeigbhoringImages- enableKeyboardNav- disableKeyboardNav- keyboardAction- endoptions = new LightboxOptionslightbox = new Lightbox options*/
(function(){
	var $,Lightbox,LightboxOptions;
	$ = jQuery;
	LightboxOptions = (function(){
	function LightboxOptions(){
	this.fileLoadingImage = 'images/loading.gif';
	this.fileCloseImage = 'images/close.png';
	this.resizeDuration = 700;
	this.fadeDuration = 500;
	this.labelImage = "Image";
	this.labelOf = "of";
}
return LightboxOptions;
}
)();
	Lightbox = (function(){
	function Lightbox(options){
	this.options = options;
	this.album = [];
	this.currentImageIndex = void 0;
	this.init();
}
Lightbox.prototype.init = function(){
	this.enable();
	return this.build();
}
;
	Lightbox.prototype.enable = function(){
	var _this = this;
	return $('body').on('click','a[rel^=lightbox],area[rel^=lightbox]',function(e){
	_this.start($(e.currentTarget));
	return false;
}
);
}
;
	Lightbox.prototype.build = function(){
	var $lightbox,_this = this;
	$("<div>",{
	id:'lightboxOverlay'}
).after($('<div/>',{
	id:'lightbox'}
).append($('<div/>',{
	"class":'lb-outerContainer'}
).append($('<div/>',{
	"class":'lb-container'}
).append($('<img/>',{
	"class":'lb-image'}
),$('<div/>',{
	"class":'lb-nav'}
).append($('<a/>',{
	"class":'lb-prev'}
),$('<a/>',{
	"class":'lb-next'}
)),$('<div/>',{
	"class":'lb-loader'}
).append($('<a/>',{
	"class":'lb-cancel'}
).append($('<img/>',{
	src:this.options.fileLoadingImage}
))))),$('<div/>',{
	"class":'lb-dataContainer'}
).append($('<div/>',{
	"class":'lb-data'}
).append($('<div/>',{
	"class":'lb-details'}
).append($('<span/>',{
	"class":'lb-caption'}
),$('<span/>',{
	"class":'lb-number'}
)),$('<div/>',{
	"class":'lb-closeContainer'}
).append($('<a/>',{
	"class":'lb-close'}
).append($('<img/>',{
	src:this.options.fileCloseImage}
))))))).appendTo($('body'));
	$('#lightboxOverlay').hide().on('click',function(e){
	_this.end();
	return false;
}
);
	$lightbox = $('#lightbox');
	$lightbox.hide().on('click',function(e){
	if ($(e.target).attr('id') === 'lightbox') _this.end();
	return false;
}
);
	$lightbox.find('.lb-outerContainer').on('click',function(e){
	if ($(e.target).attr('id') === 'lightbox') _this.end();
	return false;
}
);
	$lightbox.find('.lb-prev').on('click',function(e){
	_this.changeImage(_this.currentImageIndex - 1);
	return false;
}
);
	$lightbox.find('.lb-next').on('click',function(e){
	_this.changeImage(_this.currentImageIndex + 1);
	return false;
}
);
	$lightbox.find('.lb-loader,.lb-close').on('click',function(e){
	_this.end();
	return false;
}
);
}
;
	Lightbox.prototype.start = function($link){
	var $lightbox,$window,a,i,imageNumber,left,top,_len,_ref;
	$(window).on("resize",this.sizeOverlay);
	$('select,object,embed').css({
	visibility:"hidden"}
);
	$('#lightboxOverlay').width($(document).width()).height($(document).height()).fadeIn(this.options.fadeDuration);
	this.album = [];
	imageNumber = 0;
	if ($link.attr('rel') === 'lightbox'){
	this.album.push({
	link:$link.attr('href'),title:$link.attr('title')}
);
}
else{
	_ref = $($link.prop("tagName") + '[rel="' + $link.attr('rel') + '"]');
	for (i = 0,_len = _ref.length;
	i < _len;
	i++){
	a = _ref[i];
	this.album.push({
	link:$(a).attr('href'),title:$(a).attr('title')}
);
	if ($(a).attr('href') === $link.attr('href')) imageNumber = i;
}
}
$window = $(window);
	top = $window.scrollTop() + $window.height() / 10;
	left = $window.scrollLeft();
	$lightbox = $('#lightbox');
	$lightbox.css({
	top:top + 'px',left:left + 'px'}
).fadeIn(this.options.fadeDuration);
	this.changeImage(imageNumber);
}
;
	Lightbox.prototype.changeImage = function(imageNumber){
	var $image,$lightbox,preloader,_this = this;
	this.disableKeyboardNav();
	$lightbox = $('#lightbox');
	$image = $lightbox.find('.lb-image');
	this.sizeOverlay();
	$('#lightboxOverlay').fadeIn(this.options.fadeDuration);
	$('.loader').fadeIn('slow');
	$lightbox.find('.lb-image,.lb-nav,.lb-prev,.lb-next,.lb-dataContainer,.lb-numbers,.lb-caption').hide();
	$lightbox.find('.lb-outerContainer').addClass('animating');
	preloader = new Image;
	preloader.onload = function(){
	$image.attr('src',_this.album[imageNumber].link);
	$image.width = preloader.width;
	$image.height = preloader.height;
	return _this.sizeContainer(preloader.width,preloader.height);
}
;
	preloader.src = this.album[imageNumber].link;
	this.currentImageIndex = imageNumber;
}
;
	Lightbox.prototype.sizeOverlay = function(){
	return $('#lightboxOverlay').width($(document).width()).height($(document).height());
}
;
	Lightbox.prototype.sizeContainer = function(imageWidth,imageHeight){
	var $container,$lightbox,$outerContainer,containerBottomPadding,containerLeftPadding,containerRightPadding,containerTopPadding,newHeight,newWidth,oldHeight,oldWidth,_this = this;
	$lightbox = $('#lightbox');
	$outerContainer = $lightbox.find('.lb-outerContainer');
	oldWidth = $outerContainer.outerWidth();
	oldHeight = $outerContainer.outerHeight();
	$container = $lightbox.find('.lb-container');
	containerTopPadding = parseInt($container.css('padding-top'),10);
	containerRightPadding = parseInt($container.css('padding-right'),10);
	containerBottomPadding = parseInt($container.css('padding-bottom'),10);
	containerLeftPadding = parseInt($container.css('padding-left'),10);
	newWidth = imageWidth + containerLeftPadding + containerRightPadding;
	newHeight = imageHeight + containerTopPadding + containerBottomPadding;
	if (newWidth !== oldWidth && newHeight !== oldHeight){
	$outerContainer.animate({
	width:newWidth,height:newHeight}
,this.options.resizeDuration,'swing');
}
else if (newWidth !== oldWidth){
	$outerContainer.animate({
	width:newWidth}
,this.options.resizeDuration,'swing');
}
else if (newHeight !== oldHeight){
	$outerContainer.animate({
	height:newHeight}
,this.options.resizeDuration,'swing');
}
setTimeout(function(){
	$lightbox.find('.lb-dataContainer').width(newWidth);
	$lightbox.find('.lb-prevLink').height(newHeight);
	$lightbox.find('.lb-nextLink').height(newHeight);
	_this.showImage();
}
,this.options.resizeDuration);
}
;
	Lightbox.prototype.showImage = function(){
	var $lightbox;
	$lightbox = $('#lightbox');
	$lightbox.find('.lb-loader').hide();
	$lightbox.find('.lb-image').fadeIn('slow');
	this.updateNav();
	this.updateDetails();
	this.preloadNeighboringImages();
	this.enableKeyboardNav();
}
;
	Lightbox.prototype.updateNav = function(){
	var $lightbox;
	$lightbox = $('#lightbox');
	$lightbox.find('.lb-nav').show();
	if (this.currentImageIndex > 0) $lightbox.find('.lb-prev').show();
	if (this.currentImageIndex < this.album.length - 1){
	$lightbox.find('.lb-next').show();
}
}
;
	Lightbox.prototype.updateDetails = function(){
	var $lightbox,_this = this;
	$lightbox = $('#lightbox');
	if (typeof this.album[this.currentImageIndex].title !== 'undefined' && this.album[this.currentImageIndex].title !== ""){
	$lightbox.find('.lb-caption').html(this.album[this.currentImageIndex].title).fadeIn('fast');
}
if (this.album.length > 1){
	$lightbox.find('.lb-number').html(this.options.labelImage + ' ' + (this.currentImageIndex + 1) + ' ' + this.options.labelOf + ' ' + this.album.length).fadeIn('fast');
}
else{
	$lightbox.find('.lb-number').hide();
}
$lightbox.find('.lb-outerContainer').removeClass('animating');
	$lightbox.find('.lb-dataContainer').fadeIn(this.resizeDuration,function(){
	return _this.sizeOverlay();
}
);
}
;
	Lightbox.prototype.preloadNeighboringImages = function(){
	var preloadNext,preloadPrev;
	if (this.album.length > this.currentImageIndex + 1){
	preloadNext = new Image;
	preloadNext.src = this.album[this.currentImageIndex + 1].link;
}
if (this.currentImageIndex > 0){
	preloadPrev = new Image;
	preloadPrev.src = this.album[this.currentImageIndex - 1].link;
}
}
;
	Lightbox.prototype.enableKeyboardNav = function(){
	$(document).on('keyup.keyboard',$.proxy(this.keyboardAction,this));
}
;
	Lightbox.prototype.disableKeyboardNav = function(){
	$(document).off('.keyboard');
}
;
	Lightbox.prototype.keyboardAction = function(event){
	var KEYCODE_ESC,KEYCODE_LEFTARROW,KEYCODE_RIGHTARROW,key,keycode;
	KEYCODE_ESC = 27;
	KEYCODE_LEFTARROW = 37;
	KEYCODE_RIGHTARROW = 39;
	keycode = event.keyCode;
	key = String.fromCharCode(keycode).toLowerCase();
	if (keycode === KEYCODE_ESC || key.match(/x|o|c/)){
	this.end();
}
else if (key === 'p' || keycode === KEYCODE_LEFTARROW){
	if (this.currentImageIndex !== 0){
	this.changeImage(this.currentImageIndex - 1);
}
}
else if (key === 'n' || keycode === KEYCODE_RIGHTARROW){
	if (this.currentImageIndex !== this.album.length - 1){
	this.changeImage(this.currentImageIndex + 1);
}
}
}
;
	Lightbox.prototype.end = function(){
	this.disableKeyboardNav();
	$(window).off("resize",this.sizeOverlay);
	$('#lightbox').fadeOut(this.options.fadeDuration);
	$('#lightboxOverlay').fadeOut(this.options.fadeDuration);
	return $('select,object,embed').css({
	visibility:"visible"}
);
}
;
	return Lightbox;
}
)();
	$(function(){
	var lightbox,options;
	options = new LightboxOptions;
	return lightbox = new Lightbox(options);
}
);
}
).call(this);
	

CSS代码(lightbox.css):

/* line 6,../sass/lightbox.sass */
#lightboxOverlay{position:absolute;top:0;left:0;z-index:9999;background-color:black;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=85);opacity:0.85;display:none;}
/* line 15,../sass/lightbox.sass */
#lightbox{position:absolute;left:0;width:100%;z-index:10000;text-align:center;line-height:0;font-family:"lucida grande",tahoma,verdana,arial,sans-serif;font-weight:normal;}
/* line 24,../sass/lightbox.sass */
#lightbox img{width:auto;height:auto;}
/* line 27,../sass/lightbox.sass */
#lightbox a img{border:none;}
/* line 30,../sass/lightbox.sass */
.lb-outerContainer{position:relative;background-color:white;*zoom:1;width:250px;height:250px;margin:0 auto;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;}
/* line 38,../../../../.rvm/gems/ruby-1.9.2-p290/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */
.lb-outerContainer:after{content:"";display:table;clear:both;}
/* line 39,../sass/lightbox.sass */
.lb-container{padding:10px;}
/* line 42,../sass/lightbox.sass */
.lb-loader{position:absolute;top:40%;left:0%;height:25%;width:100%;text-align:center;line-height:0;}
/* line 51,../sass/lightbox.sass */
.lb-nav{position:absolute;top:0;left:0;height:100%;width:100%;z-index:10;}
/* line 59,../sass/lightbox.sass */
.lb-container > .nav{left:0;}
/* line 62,../sass/lightbox.sass */
.lb-nav a{outline:none;}
/* line 65,../sass/lightbox.sass */
.lb-prev,.lb-next{width:49%;height:100%;background-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");/* Trick IE into showing hover */
 display:block;}
/* line 72,../sass/lightbox.sass */
.lb-prev{left:0;float:left;}
/* line 76,../sass/lightbox.sass */
.lb-next{right:0;float:right;}
/* line 81,../sass/lightbox.sass */
.lb-prev:hover{background:url(../images/prev.png) left 48% no-repeat;}
/* line 85,../sass/lightbox.sass */
.lb-next:hover{background:url(../images/next.png) right 48% no-repeat;}
/* line 88,../sass/lightbox.sass */
.lb-dataContainer{margin:0 auto;padding-top:5px;*zoom:1;width:100%;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-ms-border-bottom-left-radius:4px;-o-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-ms-border-bottom-right-radius:4px;-o-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
/* line 38,../../../../.rvm/gems/ruby-1.9.2-p290/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */
.lb-dataContainer:after{content:"";display:table;clear:both;}
/* line 95,../sass/lightbox.sass */
.lb-data{padding:0 10px;color:#bbbbbb;}
/* line 98,../sass/lightbox.sass */
.lb-data .lb-details{width:85%;float:left;text-align:left;line-height:1.1em;}
/* line 103,../sass/lightbox.sass */
.lb-data .lb-caption{font-size:13px;font-weight:bold;line-height:1em;}
/* line 107,../sass/lightbox.sass */
.lb-data .lb-number{display:block;clear:left;padding-bottom:1em;font-size:11px;}
/* line 112,../sass/lightbox.sass */
.lb-data .lb-close{width:35px;float:right;padding-bottom:0.7em;outline:none;}
/* line 117,../sass/lightbox.sass */
.lb-data .lb-close:hover{cursor:pointer;}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
913.11 KB
jquery特效6
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章