Lightbox/弹窗

lightcase - 智能灵活Lightbox相册插件

阿里云

lightcase.js 是一款非常智能灵活的 jQuery Lightbox 插件。它支持桌面和移动手机设备,使用 CSS3 作为动画过渡效果,支持图片,视频,flash,谷歌地图,内联元素,ajax 调用等,非常强大。

使用方法:

使用该 lightbox 插件需要在页面中引入 lightcase.css 和 jQuery,以及 lightcase.js 文件。

也想出现在这里?联系我们
创客主机
  1. <link rel="stylesheet" href="css/lightcase.css" type="text/css"/>
  2. <script type="text/javascript" src="js/jquery.min.js"></script>
  3. <script type="text/javascript" src="js/lightcase.js"></script>

HTML 结构:

创建一个带 data-rel="lightcase"特性的超链接用于打开 lightbox。

  1. <a href="path/to/media.jpg" data-rel="lightcase">Your link description or thumb</a>

初始化插件:

在页面 DOM 元素加载完毕之后,可以通过下面的方法来初始化该 lightbox 插件。

  1. <script type="text/javascript">
  2.   jQuery(document).ready(function($) {
  3.     $('a[data-rel^=lightcase]').lightcase();
  4.   });
  5. </script>

显示标题:

如果你需要添加一个标题,可以简单的添加一个 title 属性。

  1. <a href="path/to/media.jpg" data-rel="lightcase" title="Your title">Your link description or thumb</a>

调用不同存储的图片:

lightcase.js 会根据浏览器视口的大小来调用不同尺寸的图片。你可以在 data-lc-href 属性中设置不同尺寸的高清大图。

  1. <a href="" data-lc-href="path/to/media1_small.jpg, 
  2.                path/to/media1_large.jpg 2x" 
  3.       data-rel="lightcase">Your link description or thumb</a>
  4. <a href="" data-lc-href="path/to/media2_default.jpg, 
  5.                                path/to/media2_small.jpg 320w, 
  6.                                path/to/media2_small_2x.jpg 320w 2x"
  7.            data-rel="lightcase">Link</a>

图片分组:

带相同 data-rel 属性的一组链接将会作为同一组图片被打开。

  1. <a href="path/to/media1.jpg" data-rel="lightcase:myCollection">Your link description or thumb</a>
  2. <a href="path/to/media2.jpg" data-rel="lightcase:myCollection">Your second collection item</a>
  3. <a href="path/to/media3.jpg" data-rel="lightcase:myCollection">Your third item, and so on...</a>

在每个分组里面还可以设置不同的类别。

  1. <a href="path/to/media1.jpg"
  2.       data-rel="lightcase:myCollection"
  3.       data-lc-categories="myCategory1 myCategory2">...</a>
  4. <a href="path/to/media2.jpg"
  5.       data-rel="lightcase:myCollection"
  6.       data-lc-categories="myCategory1">...</a>
  7. <a href="path/to/media3.jpg"
  8.         data-rel="lightcase:myCollection"
  9.         data-lc-categories="myCategory2 myCategory3 myCategory4">...</a>

幻灯片:

如果分组中带有:slideshow 属性,将会使该分组进入幻灯片模式。

  1. <a href="path/to/media.jpg"
  2.       data-rel="lightcase:myCollection:slideshow"
  3.       title="Your title">Your link description or thumb</a>

回调函数:

  1. $('a[data-rel=lightcase]').lightcase({
  2.   // Would be called immediately after lightcase is initialized
  3.   onInit : {
  4.     foo: function() {
  5.       alert('Lightcase process is initialized');
  6.     }
  7.   },
  8.   // Would be called before generating content
  9.   onStart : {
  10.     bar: function() {
  11.       alert('Lightcase process is started');
  12.     }
  13.   },
  14.   // Would be called right before showing the content
  15.   onFinish : {
  16.     baz: function() {
  17.       alert('Lightcase process is finished');
  18.     }
  19.   },
  20.   // Would be called when aborting lightcase
  21.   onClose : {
  22.     qux: function() {
  23.       alert('Lightcase closes now');
  24.     }
  25.   },
  26.   // Would be called when lightcase does the cleanup
  27.   onCleanup : {
  28.     quux: function() {
  29.       alert('Lightcase process is cleaned up');
  30.     }
  31.   }
  32. });

如何从上面的回调函数中接收所有的 DOM 元素?

  1. // All public available objects and methods
  2. console.log(lightcase);
  3.  
  4. // Get the origin link object as a jQuery ready object
  5. console.debug($(this));
  6.  
  7. // Get a specific Lightcase DOM object (since v2.3.0)
  8. console.debug(lightcase.get('case'));

如何在一个空的弹出框中打开 Lightcase?

  1. // With javascript only and without any trigger link
  2. lightcase.start({
  3.   href: '#',
  4.   // more options like width, height, etc.
  5. });
  6.  
  7. // From a simple link within markup
  8. <a href="#" data-rel="lightcase">Open blank popup</a>

如何以编程的方式关闭 Lightcase?

  1. // Call public function to close lightcase
  2. lightcase.close();
  3.  
  4. // Example for automatically closing lightcase after five seconds using a hook function
  5. $('#foo').lightcase({
  6.   onFinish: {
  7.     autoClose: function () {
  8.       setTimeout(function () {
  9.         lightcase.close();
  10.       }, 5000);
  11.     }
  12.   }
  13. });

如果你需要手动调整 lightcase 的尺寸,可以调用 resize()方法。

  1. lightcase.resize();

移动手机:

如果你需要支持移动手机的 swipe 事件,需要引入 jquery.events.swipe.js 文件。

  1. <script type="text/javascript" src="path/to/jquery.events.touch.js"></script>
  2. $('a[data-rel^=lightcase]').lightcase({
  3.   swipe: true
  4. });

手机全屏:

首先要确保 fullscreenModeForMobile 参数可用,然后在你的页面中注明下面的标记。

  1. <meta name="viewport" content="width=device-width, initial-scale=1">

配置参数:

参数 类型 默认值 描述
id String 'lightcase-case' lightbox 容器的 ID
tempIdPrefix String 'lightcase-temp-' 被复制内容的前缀
classPrefix String 'lightcase-' lightcase 对象的前缀名称
attrPrefix String 'lc-' lightcase 所有属性的前缀
transition String 'elastic' 幻灯片的过渡效果。可用值有:none', 'fade', 'fadeInline', 'elastic', 'scrollTop', 'scrollRight', 'scrollBottom', 'scrollLeft', 'scrollHorizontal' 和 'scrollVertical'
transitionIn String|null null 外部定义的进入过渡动画
transitionOut String|null null 外部定义的离开过渡动画
cssTransitions Boolean true 是否允许 css 过渡动画
speedIn Integer 350 开始过渡动画的动画速度
speedOut Integer 250 结束过渡动画的动画速度
maxWidth Integer 800 media 内容的最大宽度
maxHeight Integer 500 media 内容的最大高度
forceWidth Boolean false 强制宽度
forceHeight Boolean false 强制高度
liveResize Boolean true 是否允许调整尺寸
fullScreenModeForMobile Boolean true 是否允许移动手机的全屏模式
mobileMatchExpression RegExp /(iphone|ipod|ipad...)/ 哪些移动设备可以进入全屏模式
disableShrink Boolean false Disable the shrink completely
shrinkFactor Integer .75 Factor (in percent) to shrink the media content to recalculate dimensions
overlayOpacity Integer .9 遮罩层的比例
slideshow Boolean false 默认将分组作为幻灯片
timeout Integer 5000 幻灯片切换的延迟时间
swipe Boolean true 是否允许移动手机的 swipe 事件
useKeys Boolean true 是否允许使用键盘导航
useCategories Boolean true 是否允许在分组中再指定类别
navigateEndless Boolean true 如果为 true,幻灯片将无限循环
closeOnOverlayClick Boolean true 是否在点击遮罩层时改变 lightbox
title String|null null 标题
caption String|null null 标题的内容
showTitle Boolean true 是否显示标题
showCaption Boolean true 是否从alt属性中显示标题
showSequenceInfo Boolean true 是否显示当前分组的信息
inline Object width : 'auto',
height : 'auto
内联元素的参数对象
ajax Object width : 'auto',
height : 'auto',
type : 'get',
dataType : 'html',
data : {}
ajax 元素的参数对象
iframe Object width : 'auto',
height : 'auto',
frameborder : 0
iframe 元素的参数对象
flash Object width : 400,
height : 205,
wmode : 'transparent'
flash 元素的参数对象
video Object width : 400,
height : 225,
poster : '',
preload : 'auto',
controls : true,
autobuffer : true,
autoplay : true,
loop : false
video 元素的参数对象
attr String 'data-rel' 用于初始化分组的属性名称
href String null 强制覆盖'href' 和 'data-href'的内容
type String null 强制数据类型定义,如 'inline' 或 'ajax'
typeMapping Object 'image' : 'jpg,…',
'flash' : 'swf',
'video' : 'mp4,...',
'iframe' : 'html,...',
'ajax' : 'txt',
'inline' : '#'
管理媒体类型
errorMessage String '<p class="lightcase-error"... 错误信息的标签
labels Object 'errorMessage': 'Source could not be found...',
'sequenceInfo.of': ' of ',
'close': 'Close',
'navigator.prev': 'Prev',
'navigator.next': 'Next',
'navigator.play': 'Play',
'navigator.pause': 'Pause'
标签的文本
markup Function function() {

$('body').append(...

}
Browse the whole the function in the source file 'lightcase.js'
onInit Object {foo: function () {}} 初始化之前的回调函数
onStart Object {foo: function () {}} 生成内容之前的回调函数
onFinish Object {foo: function () {}} 生成内容之后的回调函数
onClose Object {foo: function () {}} 在 aborting 操作之前的回调函数
onCleanup Object {foo: function () {}} 在 DOM 元素被清理之后的回调函数

lightcase.js 插件的 github 地址为:https://github.com/cbopp-art/lightcase/

lightcase - 智能灵活 Lightbox 相册插件

已有 549 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!