相比LightBox来说,Fancybox相对庞大点,配置也更丰富一些,相信你会喜欢的。
Fancybox的项目主页地址:http://fancybox.net/。
Fancybox的特点如下:
- 可以支持图片、html文本、flash动画、iframe以及ajax的支持
- 可以自定义播放器的CSS样式
- 可以以组的形式进行播放
- 如果将鼠标滚动插件(mouse wheel plugin)包含进来的话Fancybox还能支持鼠标滚轮滚动来翻阅图片
- Fancybox播放器支持投影,更有立体的感觉
Fancybox使用方法:
1、引入jquery核心库和Fancybox插件库
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script><script type="text/javascript" src="/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
可选 - 如果需要用到fancy transition(一些动画效果)你还需要引入以下脚本
<script type="text/javascript" src="/fancybox/jquery.easing-1.4.pack.js"></script>
可选 - 如果需要支持鼠标滚轮滚动效果你还需要引入以下脚本
<script type="text/javascript" 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" media="screen">
3、在页面上创建链接元素
A、图片元素
<img src="image_small.jpg" kesrc="image_small.jpg" alt="">
</a>```
B、普通文本
```<a id="inline" href="#data" kesrc="#data">This shows content of element who has id="data"</a>
<div style="display: none;">
<div id="data">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
</div>```
C、Iframe
```<a href="http://www.example?iframe">This goes to iframe</a> 或者 <a class="iframe" href="http://www.example">This goes to iframe</a>```
D、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 class="grouped_elements" rel="group1" href="image_big_1.jpg">
<img src="image_small_1.jpg" alt="">
</a>
<a class="grouped_elements" rel="group1" href="image_big_2.jpg">
<img src="image_small_2.jpg" alt="">
</a>
<a class="grouped_elements" rel="group2" href="image_big_3.jpg">
<img src="image_small_3.jpg" alt="">
</a>
<a class="grouped_elements" 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后触发 |