JQuery插件FancyBox魔幻燈箱介紹
采用Mac系統的樣式。網傳主要有以下功能:
■彈出的窗口有很漂亮的陰影效果。
■關聯的對象(就是rel標簽的值一樣)會成組顯示,上面還有導航的按鈕(上一項,下一項)。
■可以顯示圖片、內聯、ajax和iframe內容。
■可以通過設置參數和CSS定制效果。
■通過easing插件可以實現fancy transitions效果(就是一些動畫效果)。
1.可以支持圖片、html文本、flash動畫、iframe以及ajax的支持
2.可以自定義播放器的CSS樣式
3.可以以組的形式進行播放
4.如果將鼠標滾動插件(mouse wheel plugin)包含進來的話Fancybox還能支持鼠標滾輪滾動來翻閱圖片
5.Fancybox播放器支持投影,更有立體的感覺
到官網http://fancybox.net/可以看到更多的效果,我迫不及待地下載了代碼研究并翻譯下。使用還挺方便,背景遮罩,收縮,淡入淡出等效果,特別是右上角那個可愛的關閉按鈕,我很喜歡。彈出的內容不一定是一個圖片,也可以是文本,FLASH,一個FRAME,或服務器端某個文件。
代碼如下:
[html] view plaincopy
</div>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="imagetoolbar" content="no" />
- <title>魔幻燈箱 1.3.4版 | 示例</title>
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
- <script>
- !window.jQuery && document.write('<script src="jquery-1.4.3.min.js"><\/script>');
- </script>
- <!--調用可用鼠標控制的庫-->
- <script type="text/javascript" src="./fancybox/jquery.mousewheel-3.0.4.pack.js"></script>
- <script type="text/javascript" src="./fancybox/jquery.fancybox-1.3.4.pack.js"></script>
- <link rel="stylesheet" type="text/css" href="./fancybox/jquery.fancybox-1.3.4.css" media="screen" />
- <link rel="stylesheet" href="style.css" />
- <script type="text/javascript">
- $(document).ready(function() {
- //顯示單個圖片例子
- $("a#example1").fancybox();
- $("a#example2").fancybox({
- 'overlayShow' : false, //不顯示遮罩層,即背景不變暗
- 'transitionIn' : 'elastic', //設置顯示圖片的動畫效果為收縮
- 'transitionOut' : 'elastic' //設置關閉圖片的動畫效果為收縮
- });
- $("a#example3").fancybox({
- 'transitionIn' : 'none', //不設置動畫效果,
- 'transitionOut' : 'none' //動畫效果有三種形式:elastic(收縮),fade(淡入淡出),none(無)
- });
- $("a#example4").fancybox({
- 'opacity' : true,
- 'overlayShow' : false,
- 'transitionIn' : 'elastic',
- 'transitionOut' : 'none'
- });
- $("a#example5").fancybox();
- $("a#example6").fancybox({
- 'titlePosition' : 'outside',//標題在彈出對話框的外側
- 'overlayColor' : '#000', //遮罩層的背景顏色
- 'overlayOpacity' : 0.9 //遮罩層(背景)的透明度,0則背景無變化,1則背景為黑色
- });
- $("a#example7").fancybox({
- 'titlePosition': 'inside' //標題在彈出對話框的內側,顯示圖片的下面
- });
- $("a#example8").fancybox({
- 'titlePosition': 'over' //標題浮動在圖片上
- });
- //顯示一組圖片例子,鼠標在圖片上時可以顯示上一張下一張導航箭頭
- $("a[rel=example_group]").fancybox({
- 'transitionIn' : 'none',
- 'transitionOut' : 'none',
- 'titlePosition' : 'over',
- 'titleFormat': function(title, currentArray, currentIndex, currentOpts) {
- //以【Image 1/4 圖片標題內容】形式顯示,如果圖片沒設置title則不顯示圖片標題內容
- return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / '
- + currentArray.length + (title.length ? ' ' + title : '') + '</span>';
- }
- });
- //其他各種應用例子
- $("#various1").fancybox({
- 'titlePosition' : 'inside',
- 'transitionIn' : 'none',
- 'transitionOut' : 'none'
- });
- $("#various2").fancybox();
- $("#various3").fancybox({
- 'width' : '75%',
- 'height' : '75%',
- 'autoScale' : false,
- 'transitionIn' : 'none',
- 'transitionOut' : 'none',
- 'type' : 'iframe'
- });
- $("#various4").fancybox({
- 'padding' : 0,
- 'autoScale' : false,
- 'transitionIn' : 'none',
- 'transitionOut' : 'none'
- });
- });
- </script>
- </head>
- <body>
- <div id="content">
- <h1>魔幻燈箱<span>1.3.4版示例 <a href="http://fancybox.net">官方主頁</a></span></h1>
- <p>
- 不同的動畫效果<br />
- <a id="example1" href="./example/1_b.jpg"><img alt="example1" src="./example/1_s.jpg" /></a>
- <a id="example2" href="./example/2_b.jpg"><img alt="example2" src="./example/2_s.jpg" /></a>
- <a id="example3" href="./example/3_b.jpg"><img alt="example3" src="./example/3_s.jpg" /></a>
- <a id="example4" href="./example/4_b.jpg"><img class="last" alt="example4" src="./example/4_s.jpg" /></a>
- </p>
- <p>
- 不同的標題位置<br />
- <a id="example5" href="./example/5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit."><img alt="example4" src="./example/5_s.jpg" /></a>
- <a id="example6" href="./example/6_b.jpg" title="Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Vivamus fringilla congue laoreet."><img alt="example5" src="./example/6_s.jpg" /></a>
- <a id="example7" href="./example/7_b.jpg" title="Cras neque mi, semper at interdum id, dapibus in leo. Suspendisse nunc leo, eleifend sit amet iaculis et, cursus sed turpis."><img alt="example6" src="./example/7_s.jpg" /></a>
- <a id="example8" href="./example/8_b.jpg" title="Sed vel sapien vel sem tempus placerat eu ut tortor. Nulla facilisi. Sed adipiscing, turpis ut cursus molestie, sem eros viverra mauris, quis sollicitudin sapien enim nec est. ras pulvinar placerat diam eu consectetur."><img class="last" alt="example7" src="./example/8_s.jpg" /></a>
- </p>
- <p>
- 圖片瀏覽(可以用鼠標或鼠標滾輪來切換圖片)<br />
- <a rel="example_group" href="./example/9_b.jpg" title="Lorem ipsum dolor sit amet"><img alt="" src="./example/9_s.jpg" /></a>
- <a rel="example_group" href="./example/10_b.jpg" title=""><img alt="" src="./example/10_s.jpg" /></a>
- <a rel="example_group" href="./example/11_b.jpg" title=""><img alt="" src="./example/11_s.jpg" /></a>
- <a rel="example_group" href="./example/12_b.jpg" title=""><img class="last" alt="" src="./example/12_s.jpg" /></a>
- </p>
- <p>
- 其他各種應用示例
- </p>
- <ul>
- <li><a id="various1" href="#inline1" title="Lorem ipsum dolor sit amet">顯示一個隱藏的DIV</a></li>
- <li><a id="various2" href="ajax.txt">用Ajax顯示ajax.txt里的內容</a></li>
- <li><a id="various3" href="http://baidu.com">在Iframe框架里顯示內容</a></li>
- <li><a id="various4" href="http://www.adobe.com/jp/events/cs3_web_edition_tour/swfs/perform.swf">顯示FLASH動畫</a></li>
- </ul>
- <div style="display: none;">
- <div id="inline1" style="width:400px;height:200px;overflow:auto;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Nulla et lorem eu nibh adipiscing ultricies nec at lacus. Cras laoreet ultricies sem, at blandit mi eleifend aliquam. Nunc enim ipsum, vehicula non pretium varius, cursus ac tortor. Vivamus fringilla congue laoreet. Quisque ultrices sodales orci, quis rhoncus justo auctor in. Phasellus dui eros, bibendum eu feugiat ornare, faucibus eu mi. Nunc aliquet tempus sem, id aliquam diam varius ac. Maecenas nisl nunc, molestie vitae eleifend vel, iaculis sed magna. Aenean tempus lacus vitae orci posuere porttitor eget non felis. Donec lectus elit, aliquam nec eleifend sit amet, vestibulum sed nunc.
- </div>
- </div>
- Ajax例子需要運行到WEB服務器才能看到效果<br />
- Photo Credit: <a href="http://www.flickr.com/people/kharied/">Katie Harris</a>
- </div>
- </body>
- </html> </ol> </div>
運行效果如下:
補充:Fancybox的API和配置選項說明
屬性名 | 默認值 | 簡要說明 | </tr> </thead>|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
padding | 10 | 瀏覽框內邊距,和css中的padding一個意思 | </tr>|||||||||||||||||||
margin | 20 | 瀏覽框外邊距,和css中的margin一個意思 | </tr>|||||||||||||||||||
opacity | false | 如果為true,則fancybox在動畫改變的時候透明度可以跟著改變 | </tr>|||||||||||||||||||
modal | false | 如果為true,則'overlayShow' 會被設成 'true' , 'hideOnOverlayClick', 'hideOnContentClick', 'enableEscapeButton', 'showCloseButton' 會被設成 'false' | </tr>|||||||||||||||||||
cyclic | false | 如果為true,相冊會循環播放 | </tr>|||||||||||||||||||
scrolling | 'auto' | 設置overflow的值來創建或隱藏滾動條,可以設置成 'auto', 'yes', or 'no' | </tr>|||||||||||||||||||
width | 560 | 設置iframe和swf的寬度,如果 'autoDimensions'為 'false',這也可以設置普通文本的寬度 | </tr>|||||||||||||||||||
height | 340 | 設置iframe和swf的高度,如果 'autoDimensions'為 'false',這也可以設置普通文本的高度 | </tr>|||||||||||||||||||
autoScale | true | 如果為true,fancybox可以自適應瀏覽器窗口大小 | </tr>|||||||||||||||||||
autoDimensions | true | 在內聯文本和ajax中,設置是否動態調整元素的尺寸,如果為true,請確保你已經為元素設置了尺寸大小 | </tr>|||||||||||||||||||
centerOnScroll | false | 如果為true,當你滾動滾動條時,fancybox將會一直停留在瀏覽器中心 | </tr>|||||||||||||||||||
ajax | { } | 和jquery的ajax調用選項一樣 注意: 'error' and 'success' 這兩個回調事件會被fancybox重寫 |
</tr>
|||||||||||||||||||
swf | {wmode: 'transparent'} | swf的設置選項 | </tr>|||||||||||||||||||
hideOnOverlayClick | true | 如果為true則點擊遮罩層關閉fancybox | </tr>|||||||||||||||||||
hideOnContentClick | false | 如果為true則點擊播放內容關閉fancybox | </tr>|||||||||||||||||||
overlayShow | true | 如果為true,則顯示遮罩層 | </tr>|||||||||||||||||||
overlayOpacity | 0.3 | 遮罩層的透明度(范圍0-1) | </tr>|||||||||||||||||||
overlayColor | '#666' | 遮罩層的背景顏色 | </tr>|||||||||||||||||||
titleShow | true | 如果為true,則顯示標題 | </tr>|||||||||||||||||||
titlePosition | 'outside' | 設置標題顯示的位置.可以設置成 'outside', 'inside' 或 'over' | </tr>|||||||||||||||||||
titleFormat | null | 可以自定義標題的格式 | </tr>|||||||||||||||||||
transitionIn, transitionOut | 'fade' | 設置動畫效果. 可以設置為 'elastic', 'fade' 或 'none' | </tr>|||||||||||||||||||
speedIn, speedOut | 300 | fade 和 elastic 動畫切換的時間間隔, 以毫秒為單位 | </tr>|||||||||||||||||||
changeSpeed | 300 | 切換時fancybox尺寸的變化時間間隔(即變化的速度),以毫秒為單位 | </tr>|||||||||||||||||||
changeFade | 'fast' | 切換時內容淡入淡出的時間間隔(即變化的速度) | </tr>|||||||||||||||||||
easingIn, easingOut | 'swing' | 為 elastic 動畫使用 Easing | </tr>|||||||||||||||||||
showCloseButton | true | 如果為true,則顯示關閉按鈕 | </tr>|||||||||||||||||||
showNavArrows | true | 如果為true,則顯示上一張下一張導航箭頭 | </tr>|||||||||||||||||||
enableEscapeButton | true | 如果為true,則啟用ESC來關閉fancybox | </tr>|||||||||||||||||||
onStart | null | 回調函數,加載內容是觸發 | </tr>|||||||||||||||||||
onCancel | null | 回調函數,取消加載內容后觸發 | </tr>|||||||||||||||||||
onComplete | null | 回調函數,加載內容完成后觸發 | </tr>|||||||||||||||||||
onCleanup | null | 回調函數,關閉fancybox前觸發 | </tr>|||||||||||||||||||
onClosed | null | 回調函數,關閉fancybox后觸發 | </tr> </tbody> </table>