FancyBox 基于 jQuery 的 Lightbox 图片查看器插件
FancyBox 是一款基于 jQuery 开发的类 Lightbox 插件。支持对放大的图片添加阴影效果,对于一组相关的图片添加导航操作按纽,该 LightBox 效果除了能够展示图片之外,还可以展示 iframe 框架里面的内容,可以方便的通过 CSS 自定义外观。
插件特点
- 可以支持图片、HTML 文本、Flash 动画、iframe 框架以及 AJAX 加载的内容。
- 可以自定义播放器的 CSS 样式
- 可以以组的形式进行播放
- 如果将鼠标滚动插件(Mouse Wheel Plugin)包含进来的话 Fancybox 还能支持鼠标滚轮滚动来翻阅图片
- Fancybox 播放器支持投影,更有立体的感觉
使用方法
1、引入 jQuery 核心库和 Fancybox 插件库
<script src="jquery.min.js"></script> <script src="/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
可选 - 如果需要用到 Fancy Transition 一些动画效果,你还需要引入以下脚本
<script src="/fancybox/jquery.easing-1.4.pack.js"></script>
可选 - 如果需要支持鼠标滚轮滚动效果,你还需要引入以下脚本
<script src="/fancybox/jquery.mousewheel-3.0.4.pack.js"></script>
2、添加样式表文件
<link rel="stylesheet" href="/fancybox/jquery.fancybox-1.3.4.css" type="text/css" />
3、在页面上创建链接元素 和 图片元素
<a id="single_image" href="image_big.jpg"> <img src="image_small.jpg" kesrc="image_small.jpg" alt=""> </a>
普通文本
<a id="inline" href="#data" kesrc="#data"> This shows content of element who has id="data" </a> <div style="display: none;"> <div id="data"> consectetur adipiscing elit.</div> </div>
Iframe 框架
<a href="http://www.example?iframe"> This goes to iframe </a>
或者
<a href="http://www.example"> This goes to iframe </a>
Ajax 异步加载
<a href="http://www.example/data.php"> This takes content using ajax </a>
如果你要显示描述信息,可以在链接上加上 title 属性,将描述信息放到 title 属性中。
4、最终的 jQuery 初始化代码
$(document).ready(function() { /* 最基本的,使用了默认配置 */ $("a#single_image").fancybox(); /* 使用了自定义配置 */ $("a#inline").fancybox({ 'hideOnContentClick': true }); /* 一下配置支持组播放 */ $("a.group").fancybox({ 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'speedIn' : 600, 'speedOut' : 200, 'overlayShow' : false }); });
用 rel 属性标签来创建相册
<a rel="group1" href="image_big_1.jpg"> <img src="image_small_1.jpg" alt=""> </a> <a rel="group1" href="image_big_2.jpg"> <img src="image_small_2.jpg" alt=""> </a> <a rel="group2" href="image_big_3.jpg"> <img src="image_small_3.jpg" alt=""> </a> <a rel="group2" href="image_big_4.jpg"> <img src="image_small_4.jpg" alt=""> </a>
$("a.grouped_elements").fancybox();
配置选项
Fancybox 的 API 和配置选项说明
属性名 | 默认值 | 简要说明 |
---|---|---|
padding | 10 | 浏览框内边距,和css中的padding一个意思 |
margin | 20 | 浏览框外边距,和css中的margin一个意思 |
opacity | false | 如果为true,则fancybox在动画改变的时候透明度可以跟着改变 |
modal | false | 如果为true,则'overlayShow' 会被设成 'true' , 'hideOnOverlayClick', 'hideOnContentClick', 'enableEscapeButton', 'showCloseButton' 会被设成 'false' |
cyclic | false | 如果为true,相册会循环播放 |
scrolling | 'auto' | 设置overflow的值来创建或隐藏滚动条,可以设置成 'auto', 'yes', or 'no' |
width | 560 | 设置iframe和swf的宽度,如果 'autoDimensions'为 'false',这也可以设置普通文本的宽度 |
height | 340 | 设置iframe和swf的高度,如果 'autoDimensions'为 'false',这也可以设置普通文本的高度 |
autoScale | true | 如果为true,fancybox可以自适应浏览器窗口大小 |
autoDimensions | true | 在内联文本和ajax中,设置是否动态调整元素的尺寸,如果为true,请确保你已经为元素设置了尺寸大小 |
centerOnScroll | false | 如果为true,当你滚动滚动条时,fancybox将会一直停留在浏览器中心 |
ajax | { } | 和jquery的ajax调用选项一样 注意: 'error' and 'success' 这两个回调事件会被fancybox重写 |
swf | {wmode: 'transparent'} | swf的设置选项 |
hideOnOverlayClick | true | 如果为true则点击遮罩层关闭fancybox |
hideOnContentClick | false | 如果为true则点击播放内容关闭fancybox |
overlayShow | true | 如果为true,则显示遮罩层 |
overlayOpacity | 0.3 | 遮罩层的透明度(范围0-1) |
overlayColor | '#666' | 遮罩层的背景颜色 |
titleShow | true | 如果为true,则显示标题 |
titlePosition | 'outside' | 设置标题显示的位置.可以设置成 'outside', 'inside' 或 'over' |
titleFormat | null | 可以自定义标题的格式 |
transitionIn, transitionOut | 'fade' | 设置动画效果. 可以设置为 'elastic', 'fade' 或 'none' |
speedIn, speedOut | 300 | fade 和 elastic 动画切换的时间间隔, 以毫秒为单位 |
changeSpeed | 300 | 切换时fancybox尺寸的变化时间间隔(即变化的速度),以毫秒为单位 |
changeFade | 'fast' | 切换时内容淡入淡出的时间间隔(即变化的速度) |
easingIn, easingOut | 'swing' | 为 elastic 动画使用 Easing |
showCloseButton | true | 如果为true,则显示关闭按钮 |
showNavArrows | true | 如果为true,则显示上一张下一张导航箭头 |
enableEscapeButton | true | 如果为true,则启用ESC来关闭fancybox |
onStart | null | 回调函数,加载内容是触发 |
onCancel | null | 回调函数,取消加载内容后触发 |
onComplete | null | 回调函数,加载内容完成后触发 |
onCleanup | null | 回调函数,关闭fancybox前触发 |
onClosed | null | 回调函数,关闭fancybox后触发 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论