av素人天堂_free性亚洲_久久亚洲国产视频_国产网红在线_午夜av在线播放_欧美成人精品福利网站_热99在线观看_国产在线观看免费麻豆_日本高清在线观看_亚洲免费网站观看视频

FancyBox3 中文文檔

1. 介紹

fancyBox 是一個(gè) JavaScript 庫,它以優(yōu)雅的方式展示圖片,視頻和一些 html 內(nèi)容。它包含你所期望的一切特性 —— 支持觸屏,響應(yīng)式和高度自定義。

1.1 依賴

推薦 jQuery 3+,但是 fancyBox 仍支持 jQery 1.9.1+ 和 jQuery 2+ 。

注意

如果你在圖片縮放時(shí)遇到了問題,請(qǐng)升級(jí) jQuery 到最近版本(至少v3.2.1)。

1.2 兼容

fancyBox 支持觸屏操作,而且支持縮放等手勢(shì)操作。在移動(dòng)端和PC端上都十分合適。

fancyBox 已經(jīng)在下列瀏覽器中測(cè)試:

  • Chrome
  • firefox
  • IE10/11
  • Edge
  • IOS Safari
  • Nexus 7 Chrome

2. 配置

可以在 html 文檔中引入.css.js來使用fancyBox,確保在這之前引入了 jQuery 庫。下面是使用fancyBox的一個(gè)基本的HTML模板:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>My page</title>

	<!-- CSS -->
	<link rel="stylesheet" type="text/css" href="jquery.fancybox.min.css">
</head>
<body>

	<!-- Your HTML content goes here -->

	<!-- JS -->
	<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
	<script src="jquery.fancybox.min.js"></script>
</body>
</html>

注意

  • 要先引入jQuery
  • 如果頁面中已經(jīng)引入過jQuery,不能再次引入
  • 不要同時(shí)引入 fancybox.jsfancybox.min.js
  • 一些方法(ajax,iframes 等)必須在一個(gè)web服務(wù)器上才可以正常運(yùn)行,在瀏覽器打開一個(gè)本地文件是無法正常工作的

2.1 下載fancyBox

可以在GIthub下載最新的版本。

或者直接引用 cdnjs —cdnjs.com/libraries/f…。

2.2 包管理工具

fancyBox 還可以通多 npm 和 Bower安裝。

# NPM
npm install @fancyapps/fancybox --save

# Bower
bower install fancybox --save

3. 使用

3.1 使用 data 屬性初始化

最基本的用法是通過添加?data-fancybox?屬性到一個(gè)超鏈接標(biāo)簽。標(biāo)題可以通過?data-capiton?添加。例如:

<a href="image.jpg" data-fancybox data-caption="My caption">
	<img src="thumbnail.jpg" alt="" />
</a>

 

這種方式使用默認(rèn)的配置,可以查看選項(xiàng)進(jìn)行自定義配置,或者使用data-options屬性。

3.2 使用 JavaScript 初始化

使用 jQuery 選擇器選擇一個(gè)元素,然后調(diào)用fancybox方法:

<script type="text/javascript">
	$("[data-fancybox]").fancybox({
		// Options will go here
	});
</script>

使用這種方式,只有被選中的元素才可以觸發(fā)點(diǎn)擊事件。

為了可以現(xiàn)在或之后存在的元素都可以觸發(fā)點(diǎn)擊事件,使用selector選項(xiàng)。例如:

3.3 手動(dòng)調(diào)用 fancyBox

fancyBox 允許使用 JavaScrip t以任意形式觸發(fā),因此不必需要通過某一個(gè)元素觸發(fā)。下面例子為展示一段簡(jiǎn)單的信息:

$.fancybox.open('<div class="message"><h2>Hello!</h2><p>You are awesome!</p></div>');

3.4 分組

如果你有一組元素,組內(nèi)元素使用相同的?data-fancybox?值就可以組成一個(gè)相冊(cè)。不同的組應(yīng)該使用不同的屬性值加以區(qū)分。

<a href="image_1.jpg" data-fancybox="group" data-caption="Caption #1">
	<img src="thumbnail_1.jpg" alt="" />
</a>

<a href="image_2.jpg" data-fancybox="group" data-caption="Caption #2">
	<img src="thumbnail_2.jpg" alt="" />
</a>

注意

fancyBox根據(jù)給定的url自己嘗試檢測(cè)內(nèi)容的類型。如果無法檢測(cè),該類型可以使用data-type屬性手動(dòng)添加。

<a href="images.php?id=123" data-type="image" data-caption="Caption">
	Show image
</a>

4. 媒體類型

4.1 圖片

使用 fancyBox 的標(biāo)準(zhǔn)做法是用小尺寸的圖片鏈接到大尺寸圖片:

默認(rèn)情況下,fancyBox 會(huì)在一張圖片展示前進(jìn)行預(yù)加載。你可以選擇立即顯示圖片,這樣當(dāng)加載完成后會(huì)馬上渲染和顯示完整尺寸的圖片。不過,以下屬性是必須添加的:

  • data-width?- 圖片的完整寬度
  • data-height?- 圖片的完整高度
<a href="image.jpg" data-fancybox="images" data-width="2048" data-height="1365">
    <img src="thumbnail.jpg" />
</a>

fancyBox 還支持禁止右鍵下載來保護(hù)圖片。當(dāng)然這無法阻止那些下定決心下載的用戶,但是可以讓大多數(shù)想要盜取你文件的用戶打消這個(gè)念頭。

 

$('[data-fancybox]').fancybox({
  protect: true
})

4.2 行內(nèi) HTML

對(duì)于行內(nèi)元素,你需要?jiǎng)?chuàng)建一個(gè)隱藏的元素并添加獨(dú)特的?id?屬性:

<div style="display: none;" id="hidden-content">
	<h2>Hello</h2>
	<p>You are awesome.</p>
</div>

然后只需要?jiǎng)?chuàng)建一個(gè)帶有?data-src?屬性的超鏈接,該屬性值匹配之前隱藏元素的id(優(yōu)先使用# ):

 

<a data-fancybox data-src="#hidden-content" href="javascript:;">
	Trigger the fancyBox
</a>

這段代碼會(huì)產(chǎn)生一個(gè)關(guān)閉按鈕(如果你沒有通過?smallBtn: false?禁用的話),這個(gè)按鈕只設(shè)置了居中。因此你可以很輕松地通過css來自定義樣式。

 

4.3 Ajax

想要通過 Ajax 加載內(nèi)容,需要在超鏈接添加?data-type="ajax"?屬性:

<a data-fancybox data-type="ajax" data-src="my_page.com/path/to/ajax/" href="javascript:;">
	AJAX content
</a>

另外,可以使用?data-filter?屬性定義一個(gè)選擇器,來顯示響應(yīng)的一部分。這個(gè)選擇器需要是一個(gè)合法的 jQuery 選擇器:

 

<a data-fancybox data-type="ajax" data-src="my_page.com/path/to/ajax/" data-filter="#two" href="javascript:;">
	AJAX content
</a>

4.4 Iframe

如果內(nèi)容可以展示在頁面,并且放在 iframe 中不會(huì)被腳本或者安全策略禁止,它就可以在 fancyBox 中展示:

<a data-fancybox data-type="iframe" data-src="http://codepen.io/fancyapps/full/jyEGGG/" href="javascript:;">
	Webpage
</a>

<a data-fancybox data-type="iframe" data-src="https://mozilla.github.io/pdf.js/web/viewer.html" href="javascript:;">
	Sample PDF
</a>

如果嵌入了 iframe,可以從父容器中訪問和控制 fancyBox:

// 根據(jù)內(nèi)容調(diào)整 iframe 的高度
parent.jQuery.fancybox.getInstance().update();

// 關(guān)閉當(dāng)前的 fancyBox 實(shí)例
parent.jQuery.fancybox.getInstance().close();

Iframe 尺寸可以通多 CSS 調(diào)整:

 

.fancybox-slide--iframe .fancybox-content {
	width  : 800px;
	height : 600px;
	max-width  : 80%;
	max-height : 80%;
	margin: 0;
}

如果需要的話,CSS 樣式可以被 JS 覆蓋:

$("[data-fancybox]").fancybox({
	iframe : {
		css : {
			width : '600px'
		}
	}
});

如果你沒有禁止 iframe 的預(yù)加載(使用preload),那么fancyBox會(huì)嘗試計(jì)算內(nèi)容的尺寸,并且會(huì)根據(jù)內(nèi)容來調(diào)整 iframe 的寬高。注意,這依賴于同源策略,因此會(huì)有一些限制。

下面這個(gè)例子禁止了 iframe 的預(yù)加載,并且用取消按鈕代替了工具欄。

$('[data-fancybox]').fancybox({
	toolbar  : false,
	smallBtn : true,
	iframe : {
		preload : false
	}
})

5. 嵌入

支持的網(wǎng)站可以展示在 fancyBox 中,只需要提供頁面的地址即可:

<a data-fancybox >
  YouTube video
</a>

<a data-fancybox >
  Vimeo video
</a>

<a data-fancybox >
	Google Map
</a>

<a data-fancybox  data-caption="<span title=&quot;Edited&quot;>balloon rides at dawn ??<br>was such a magical experience floating over napa valley as the golden light hit the hills.<br><a href=&quot;https://www.instagram.com/jamesrelfdyer/&quot;>@jamesrelfdyer</a></span>">
	Instagram photo
</a>

5.1 視頻尺寸

通過 CSS 調(diào)整視頻的顯示大?。?/p>

.fancybox-slide--video .fancybox-content {
	width  : 800px;
	height : 600px;
	max-width  : 80%;
	max-height : 80%;
}

5.2 視頻參數(shù)

通過 url 中的參數(shù)控制視頻

<a data-fancybox >
  YouTube video - hide controls and info
</a>

<a data-fancybox >
  Vimeo video - custom color
</a>

通過 JavaScript 控制視頻:

$('[data-fancybox]').fancybox({
	youtube : {
		controls : 0,
		showinfo : 0
	},
	vimeo : {
		color : 'f00'
	}
});

6. 選項(xiàng)

默認(rèn)選項(xiàng)值快速參考:

var defaults = {

    // 相冊(cè)循環(huán)瀏覽
    loop : false,

    // 圖片周圍的margin,如果視口(viewport)寬度小于800px則忽略
    margin : [44, 0],

    // Horizontal space between slides
    gutter : 50,

    // 鍵盤瀏覽
    keyboard : true,

    // 是否在屏幕邊緣顯示箭頭
    arrows : true,

    // 是否顯示infobar (頂部的counter and arrows)
    infobar : true,

    // 是否顯示頂部的toolbar
    toolbar : true,

    // 控制頂部toolbar里顯示的圖表
  	// 通過`btnTpl`選項(xiàng)的模板創(chuàng)建按鈕,并被放置在toolbar(class="fancybox-toolbar"`的元素)中
    buttons : [
        'slideShow',
        'fullScreen',
        'thumbs',
        'share',
        //'download',
        //'zoom',
        'close'
    ],

    // 探測(cè)"idle"的時(shí)間(秒)
    idleTime : 3,

    // 是否在右上角顯示關(guān)閉按鈕
  	// 如果設(shè)置為'auto',遇到內(nèi)容類型為html,inline,ajax時(shí)顯示
    // Use template from `btnTpl.smallBtn` for customization
    smallBtn : 'auto',

    // 保護(hù)文件,禁止右鍵下載
    protect : false,

    // Shortcut to make content "modal" - 禁止鍵盤瀏覽,隱藏按鈕等
    modal : false,

    image : {
      	// 預(yù)加載
      	// 需要預(yù)定義圖片的尺寸
      	// 設(shè)置為'auto',自動(dòng)在預(yù)覽圖中縮放
        preload : "auto"

    },

    ajax : {

        // 請(qǐng)求 ajax 的配置
        settings : {
          	// 表明請(qǐng)求是從模態(tài)框中發(fā)起,名字可改
            data : {
                fancybox : true
            }
        }

    },

    iframe : {

        // Iframe 模板
        tpl : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen allowtransparency="true" src=""></iframe>',

        // 預(yù)加載
        // 由于同源策略,不能加載跨域數(shù)據(jù)
        preload : true,

      	// 自定義包裹 iframe 的元素的 CSS 樣式
      	// 這樣就可以自定義 iframe 的尺寸
        css : {},

        // iframe 標(biāo)簽屬性
        attr : {
            scrolling : 'auto'
        }

    },

    // 如果內(nèi)容類型不能自動(dòng)檢測(cè)出來,默認(rèn)值為'image'
    defaultType : 'image',

    // 打開/關(guān)閉動(dòng)畫類型
    // 可用的值:
    //   false            - disable
    //   "zoom"           - zoom images from/to thumbnail
    //   "fade"
    //   "zoom-in-out"
    //
    animationEffect : "zoom",

    // 打開/關(guān)閉動(dòng)畫使用的時(shí)間,ms
    animationDuration : 500,

    // 圖片縮放時(shí)是夠改變透明度
  	// 如果透明度為'auto',那么圖片和縮略圖比例不一致時(shí)透明度將會(huì)發(fā)生改變
    zoomOpacity : "auto",

    // 滑塊動(dòng)畫
    //
    // 可用的值:
    //   false            - disable
    //   "fade'
    //   "slide'
    //   "circular'
    //   "tube'
    //   "zoom-in-out'
    //   "rotate'
    //
    transitionEffect : "fade",

    // 動(dòng)畫持續(xù)時(shí)間,ms
    transitionDuration : 366,

    // 自定義的滑塊的 class 值
    slideClass : '',

    // 自定義的布局的 class 值
    baseClass : '',

    // 布局的模板
    baseTpl	:
        '<div class="fancybox-container" role="dialog" tabindex="-1">' +
            '<div class="fancybox-bg"></div>' +
            '<div class="fancybox-inner">' +
                '<div class="fancybox-infobar">' +
                    '<span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span>' +
                '</div>' +
                '<div class="fancybox-toolbar">{{buttons}}</div>' +
                '<div class="fancybox-navigation">{{arrows}}</div>' +
                '<div class="fancybox-stage"></div>' +
                '<div class="fancybox-caption-wrap"><div class="fancybox-caption"></div></div>' +
            '</div>' +
        '</div>',

    // 加載中時(shí)的模板
    spinnerTpl : '<div class="fancybox-loading"></div>',

    // 錯(cuò)誤時(shí)的模板
    errorTpl : '<div class="fancybox-error"><p>{{ERROR}}<p></div>',

    btnTpl : {

        download : '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}">' +
                    '<svg viewBox="0 0 40 40">' +
                        '<path d="M20,23 L20,8 L20,23 L13,16 L20,23 L27,16 L20,23 M26,28 L13,28 L27,28 L14,28" />' +
                    '</svg>' +
                '</a>',

        zoom : '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}">' +
                    '<svg viewBox="0 0 40 40">' +
                        '<path d="M 18,17 m-8,0 a 8,8 0 1,0 16,0 a 8,8 0 1,0 -16,0 M25,23 L31,29 L25,23" />' +
                    '</svg>' +
                '</button>',

        close : '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}">' +
                    '<svg viewBox="0 0 40 40">' +
                        '<path d="M10,10 L30,30 M30,10 L10,30" />' +
                    '</svg>' +
                '</button>',

      	// 如果'smallBtn'沒有設(shè)置為 false,默認(rèn)關(guān)閉按鈕將會(huì)被放置在你的 html/inline/ajax 內(nèi)容中
        smallBtn   : '<button data-fancybox-close class="fancybox-close-small" title="{{CLOSE}}"></button>',

        // 箭頭
        arrowLeft : '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}">' +
                        '<svg viewBox="0 0 40 40">' +
                          '<path d="M10,20 L30,20 L10,20 L18,28 L10,20 L18,12 L10,20"></path>' +
                        '</svg>' +
                      '</button>',

        arrowRight : '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}">' +
                      '<svg viewBox="0 0 40 40">' +
                        '<path d="M30,20 L10,20 L30,20 L22,28 L30,20 L22,12 L30,20"></path>' +
                      '</svg>' +
                    '</button>'
    },

    // 模態(tài)框放置在哪個(gè)節(jié)點(diǎn)中
    parentEl : 'body',


    // 焦點(diǎn)處理
    // ==============

    // 打開后焦點(diǎn)在第一個(gè)支持焦點(diǎn)的元素上
    autoFocus : false,

    // 關(guān)閉后焦點(diǎn)回到 active 的元素上
    backFocus : true,

    // 不讓用戶焦點(diǎn)放在模態(tài)框外的內(nèi)容中
    trapFocus : true,


    // 模態(tài)框配置
    // =======================

    fullScreen : {
        autoStart : false,
    },

    // 設(shè)置 `touch: false` 來禁止拖拽/手指滑動(dòng)
    touch : {
        vertical : true,  // 允許垂直方向拖拽
        momentum : true   // Continue movement after releasing mouse/touch when panning
    },

    // 手動(dòng)初始化時(shí)的 hash 值,
    // 設(shè)為 `false` 不改變 hash 
    hash : null,

    // 自定義或者添加媒體類型
    // 例如:
    /*
    media : {
        youtube : {
            params : {
                autoplay : 0
            }
        }
    }
    */
    media : {},

    slideShow : {
        autoStart : false,
        speed     : 4000
    },

    thumbs : {
        autoStart   : false,                  // 打開的時(shí)候展示縮略圖
        hideOnClose : true,                   // 關(guān)閉動(dòng)畫開始時(shí)隱藏縮略圖輪廓
        parentEl    : '.fancybox-container',  // Container is injected into this element
        axis        : 'y'                     // 垂直 (y) or 水平 (x) 滾動(dòng)
    },

    // 使用鼠標(biāo)滾輪來瀏覽相冊(cè)
    // 設(shè)為 'auto' - 只對(duì)圖片啟用
    wheel : 'auto',

    // 毀掉函數(shù)
    //==========

    // 更多信息請(qǐng)查看 API
    // 例如:
    /*
        afterShow: function( instance, current ) {
             console.info( 'Clicked element:' );
             console.info( current.opts.$orig );
        }
    */

    onInit       : $.noop,  // 實(shí)例初始化完成

    beforeLoad   : $.noop,  // 側(cè)欄的內(nèi)容正在被加載
    afterLoad    : $.noop,  // 側(cè)欄的內(nèi)容加載完成后

    beforeShow   : $.noop,  // 打開動(dòng)畫開始前
    afterShow    : $.noop,  // 內(nèi)容加載完成,進(jìn)行動(dòng)畫的時(shí)候

    beforeClose  : $.noop,  // 實(shí)例準(zhǔn)備關(guān)閉的時(shí)候,返回 false 值取消關(guān)閉
    afterClose   : $.noop,  // 實(shí)例關(guān)閉后

    onActivate   : $.noop,  // 實(shí)例激活的時(shí)候
    onDeactivate : $.noop,  // 其他實(shí)例被激活的時(shí)候


    // 交互
    // ===========

    // 使用一下選項(xiàng)自定義用戶單擊雙擊等事件
    // 每個(gè)選項(xiàng)可以是字符串,或者有返回值的方法
    //
    // 可用的值:
    //   "close"           - close instance
    //   "next"            - move to next gallery item
    //   "nextOrClose"     - move to next gallery item or close if gallery has only one item
    //   "toggleControls"  - show/hide controls
    //   "zoom"            - zoom image (if loaded)
    //   false             - do nothing

    // 內(nèi)容被點(diǎn)擊
    clickContent : function( current, event ) {
        return current.type === 'image' ? 'zoom' : false;
    },

    // 側(cè)邊欄被點(diǎn)擊
    clickSlide : 'close',

    // 點(diǎn)擊模態(tài)框外的北京時(shí)
    clickOutside : 'close',

    // 同之前的兩個(gè)一樣,只是是雙擊的時(shí)候
    dblclickContent : false,
    dblclickSlide   : false,
    dblclickOutside : false,


    // 移動(dòng)端事件
    // =============================================

    mobile : {
        idleTime : false,
        margin   : 0,

        clickContent : function( current, event ) {
            return current.type === 'image' ? 'toggleControls' : false;
        },
        clickSlide : function( current, event ) {
            return current.type === 'image' ? 'toggleControls' : 'close';
        },
        dblclickContent : function( current, event ) {
            return current.type === 'image' ? 'zoom' : false;
        },
        dblclickSlide : function( current, event ) {
            return current.type === 'image' ? 'zoom' : false;
        }
    },


    // 國際化
    // ============

    lang : 'en',
    i18n : {
        'en' : {
            CLOSE       : 'Close',
            NEXT        : 'Next',
            PREV        : 'Previous',
            ERROR       : 'The requested content cannot be loaded. <br/> Please try again later.',
            PLAY_START  : 'Start slideshow',
            PLAY_STOP   : 'Pause slideshow',
            FULL_SCREEN : 'Full screen',
            THUMBS      : 'Thumbnails',
            DOWNLOAD    : 'Download',
            SHARE       : 'Share',
            ZOOM        : 'Zoom'
        },
        'de' : {
            CLOSE       : 'Schliessen',
            NEXT        : 'Weiter',
            PREV        : 'Zurück',
            ERROR       : 'Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp?ter nochmal.',
            PLAY_START  : 'Diaschau starten',
            PLAY_STOP   : 'Diaschau beenden',
            FULL_SCREEN : 'Vollbild',
            THUMBS      : 'Vorschaubilder',
            DOWNLOAD    : 'Herunterladen',
            SHARE       : 'Teilen',
            ZOOM        : 'Ma?stab'
        }
    }

};

通過傳入?fancybox?方法一個(gè)對(duì)象來設(shè)置一個(gè)實(shí)例:

$("[data-fancybox]").fancybox({
	thumbs : {
		autoStart : true
	}
});

可以通過?$.fancybox.defaults?命名空間修改 fancyBox 的默認(rèn)選項(xiàng):

$.fancybox.defaults.animationEffect = "fade";

對(duì)于單獨(dú)的元素可以通過?data-options?屬性進(jìn)行自定義。這個(gè)屬性值要求JSON格式的對(duì)象:

<a data-fancybox data-options='{"caption" : "My caption", "src" : "https://codepen.io/about/", "type" : "iframe"}' href="javascript:;" class="btn">
	Open external page
</a>

7. API

API 提供了一系列的方法來控制 fancyBox。這些方法幫助你擴(kuò)展插件,整合到其他的 web 應(yīng)用中。

7.1 核心方法

操作實(shí)例的核心方法:

// 只關(guān)閉當(dāng)前 active 狀態(tài)或者所有的 fancyBox 實(shí)例
$.fancybox.close( true );

// 打開 fancyBox
$.fancybox.open( items, opts, index );

通過 jQuery 將相冊(cè)中的元素變?yōu)?jQuery 對(duì)象或者包含純對(duì)象的數(shù)組,進(jìn)行更多操作如創(chuàng)建定義點(diǎn)擊事件。

var $links = $('.fancybox');

$links.on('click', function() {

	$.fancybox.open( $links, {
		// 自定義內(nèi)容
	}, $links.index( this ) );

	return false;
});

手動(dòng)創(chuàng)建一組對(duì)象時(shí),組內(nèi)元素應(yīng)該遵循以下規(guī)則:

{
  	src  : '' // 資源
	type : '' // 類型: image|inline|ajax|iframe|html (optional)
	opts : {} // 選項(xiàng) (optional)
}

下面是一個(gè)通過 JavaScrip t打開相冊(cè)的例子:

$.fancybox.open([
	{
		src  : '1_b.jpg',
		opts : {
			caption : 'First caption'
		}
	},
	{
		src  : '2_b.jpg',
		opts : {
			caption : 'Second caption'
		}
	}
], {
	loop : false
});

fancyBox 允許只傳一個(gè)對(duì)象。打開行內(nèi)元素的例子:

$.fancybox.open({
	src  : '#hidden-content',
	type : 'inline',
	opts : {
		afterShow : function( instance, current ) {
			console.info( 'done!' );
		}
	}
});
// 譯者注:行內(nèi)元素如下
<div id="#hidden-content">
  <p>...content</p>
</div>

 

7.2 實(shí)例的方法

你需要定義一個(gè)實(shí)例來使用實(shí)例的方法。

var instance = $.fancybox.open(
	// 內(nèi)容和選項(xiàng)
);

從當(dāng)前 active 的實(shí)例中獲取信息:

var instance = $.fancybox.getInstance();

回調(diào)函數(shù)的第一個(gè)參數(shù)返回實(shí)例信息:

$("[data-fancybox]").fancybox({
	afterShow : function( instance, current ) {
		console.info( instance );
	}
});

實(shí)例可以調(diào)用以下方法:

// 跳到下一個(gè)相冊(cè)元素
instance.next( duration );

//跳到上一個(gè)相冊(cè)元素
instance.previous( duration );

// 調(diào)到選中的相冊(cè)元素
instance.jumpTo( index, duration );

// 檢測(cè)當(dāng)前尺寸是否小于實(shí)際尺寸
instance.isScaledDown();

// 縮放到實(shí)際尺寸
instance.scaleToActual( x, y, duration );

// 檢測(cè)尺寸是否超過父元素
instance.canPan();

// 縮放適應(yīng)父元素尺寸
instance.scaleToFit( duration );

// 更新滑塊的內(nèi)容和位置
instance.update();

// 更新側(cè)邊欄的位置, 縮放內(nèi)容來適應(yīng)
instance.updateSlide( slide );

// 更新 infobar 的值, 導(dǎo)航按鈕的狀態(tài), 和展示標(biāo)題
instance.updateControls( force );

// 在側(cè)邊欄中加載自定義內(nèi)容
instance.setContent( slide, content );

// 在側(cè)邊欄中加載loading效果
instance.showLoading( slide );

// 從側(cè)邊欄中去除loading效果
instance.hideLoading( slide );

// 找到和把焦點(diǎn)放在第一個(gè)可以放置焦點(diǎn)的元素
instance.focus();

// 激活當(dāng)前 active 的實(shí)例,顯示在最前面
instance.activate();

// 關(guān)閉實(shí)例
instance.close();

7.3 事件

fancyBox 支持觸發(fā)以下事件:

beforeLoad   : 滑塊的內(nèi)容加載前
afterLoad    : 滑塊內(nèi)容加載后

beforeShow   : 打開動(dòng)畫開始前
afterShow    : 內(nèi)容或者動(dòng)畫加載完成

beforeClose  : 實(shí)例準(zhǔn)備關(guān)閉前,染回`false`取消關(guān)閉
afterClose   : 實(shí)例關(guān)閉后

onInit       : 實(shí)例初始化完成
onActivate   : 實(shí)例active狀態(tài)
onDeactivate : 其他實(shí)例變?yōu)閍ctive狀態(tài)

事件可以作為一個(gè)對(duì)象的函數(shù)屬性,該對(duì)象作為參數(shù)傳入到 fancyBox 初始化方法中:

<script type="text/javascript">
	$("[data-fancybox]").fancybox({
		afterShow: function( instance, slide ) {

			// Tip: Each event passes useful information within the event object:

			// Object containing references to interface elements
			// (background, buttons, caption, etc)
			// console.info( instance.$refs );

			// Current slide options
			// console.info( slide.opts );

			// Clicked element
			// console.info( slide.opts.$orig );

			// Reference to DOM element of the slide
			// console.info( slide.$slide );

		}
	});
</script>

每一個(gè)回調(diào)函數(shù)接收兩個(gè)參數(shù) —— 當(dāng)前的 fancyBox 實(shí)例和當(dāng)前的相冊(cè)對(duì)象(如果它們存在)。

fancyBox也支持觸發(fā)所有的實(shí)例事件。為了防止和其他的腳本產(chǎn)生干擾,這些事件命名為.fb結(jié)尾。這些事件函數(shù)接收3個(gè)參數(shù)—事件(event),當(dāng)前的 fancyBox 實(shí)例和當(dāng)前的相冊(cè)對(duì)象。

下面例子是綁定afterShow事件:

$(document).on('afterShow.fb', function( e, instance, slide ) {
	// Your code goes here
});

如果你想阻止當(dāng)前彈窗的關(guān)閉(例如在表單提交之后),可以使用beforeClose。只需要返回false即可:

beforeClose : function( instance, current, e ) {
	if ( $('#my-field').val() == '' ) {
		return false;
	}
}

8. 模塊

fancyBox 代碼被分成幾個(gè)擴(kuò)展核心功能的文件(模塊)。你可以通過去除不必要的模塊來構(gòu)建你自己的 fancyBox 版本。如果需要,每一個(gè)模塊有自己的.js.css文件。

// 自定義、添加新的媒體類型
// 例如:
/*
media : {
	youtube : {
		params : {
			autoplay : 0
		}
	}
}
*/
media : {},

slideShow : {
	autoStart : false,
	speed     : 4000
},

thumbs : {
	autoStart   : false,                  // 打開時(shí)顯示縮略圖
	hideOnClose : true,                   // Hide thumbnail grid when closing animation starts
	parentEl    : '.fancybox-container',  // Container is injected into this element
	axis        : 'y'                     // Vertical (y) or horizontal (x) scrolling
}

Example (show thumbnails on start):

開始時(shí)展示縮略圖的例子:

$('[data-fancybox="images"]').fancybox({
	thumbs : {
		autoStart : true
	}
})

如果你查看了 fancyBox 的實(shí)例對(duì)象,你會(huì)發(fā)現(xiàn)一些key的值是大寫的 —— 他們關(guān)聯(lián)著其他模塊的對(duì)象。當(dāng)然,你也會(huì)發(fā)現(xiàn) fancyBox 使用和 jQuery 一直的前綴?$?。

下面例子為如何拿到縮略圖柵格元素:

$.fancybox.getInstance().Thumbs.$grid

下面例子為如何調(diào)用切換縮略圖的方法:

$.fancybox.getInstance().Thumbs.toggle();

可使用的方法列表:

Thumbs.focus()
Thumbs.update();
Thumbs.hide();
Thumbs.show();
Thumbs.toggle();

FullScreen.request( elem );
FullScreen.exit();
FullScreen.toggle( elem );
FullScreen.isFullscreen();
FullScreen.enabled();

SlideShow.start();
SlideShow.stop();
SlideShow.toggle();

如果你想禁止 hash 模塊,使用下面代碼片段(引用 JS 之后):

$.fancybox.defaults.hash = false;

9. FAQ

1. 打開、關(guān)閉導(dǎo)致固定定位的元素移動(dòng)

在固定定位的元素的class中加入compensate-for-scrollbar。例子為使用Bootstrap的navbar組件:

<nav class="navbar navbar-inverse navbar-fixed-top compensate-for-scrollbar">
	<div class="container">
		..
	</div>
</nav>

上個(gè)例子中,腳本會(huì)測(cè)量滾動(dòng)條的寬度,創(chuàng)建compensate-for-scrollbar樣式并將寬度值復(fù)制到該樣式的margin-right屬性。因此,如果你的元素寬度設(shè)置為width:100%,你應(yīng)該同時(shí)使用leftright定位,例如:

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}

2. 如何自定義標(biāo)題

你可以使用caption選項(xiàng),它接收一個(gè)函數(shù),并且被組內(nèi)的每個(gè)元素調(diào)用。例子為增加圖片下載鏈接:

$( '[data-fancybox="images"]' ).fancybox({
    caption : function( instance, item ) {
        var caption = $(this).data('caption') || '';

        if ( item.type === 'image' ) {
            caption = (caption.length ? caption + '<br />' : '') + '<a href="' + item.src + '">Download image</a>' ;
        }

        return caption;
    }
});

在標(biāo)題右邊增加當(dāng)前圖片的序號(hào)和圖片總數(shù):

$( '[data-fancybox="images"]' ).fancybox({
    infobar : false,
    caption : function( instance, item ) {
        var caption = $(this).data('caption') || '';

        return ( caption.length ? caption + '<br />' : '' ) + 'Image <span data-fancybox-index></span> of <span data-fancybox-count></span>';
    }
});

caption方法里面,this指向被點(diǎn)擊的元素。例子為使用不同的標(biāo)題:

$( '[data-fancybox]' ).fancybox({
	caption : function( instance, item ) {
		return $(this).find('figcaption').html();
	}
});

3. 如何在tool上創(chuàng)建自定義按鈕

創(chuàng)建可重復(fù)使用的按鈕例子:

// 創(chuàng)建按鈕模板
$.fancybox.defaults.btnTpl.fb = '<button data-fancybox-fb class="fancybox-button fancybox-button--fb" title="Facebook">' +
    '<svg viewBox="0 0 24 24">' +
        '<path d="M22.676 0H1.324C.594 0 0 .593 0 1.324v21.352C0 23.408.593 24 1.324 24h11.494v-9.294h-3.13v-3.62h3.13V8.41c0-3.1 1.894-4.785 4.66-4.785 1.324 0 2.463.097 2.795.14v3.24h-1.92c-1.5 0-1.793.722-1.793 1.772v2.31h3.584l-.465 3.63h-3.12V24h6.115c.733 0 1.325-.592 1.325-1.324V1.324C24 .594 23.408 0 22.676 0"/>' +
    '</svg>' +
'</button>';

// 使用時(shí)間代理使按鈕可點(diǎn)擊
$('body').on('click', '[data-fancybox-fb]', function() {
  window.open("https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(window.location.href)+"&t="+encodeURIComponent(document.title), '','left=0,top=0,width=600,height=300,menubar=no,toolbar=no,resizable=yes,scrollbars=yes');
});

// 自定義按鈕
$( '[data-fancybox="images"]' ).fancybox({
  buttons : [
    'fb',
    'close'
  ]
});

4. 如何重置縮略圖柵格的位置

這里沒有 JS 選項(xiàng)去改變縮略圖柵格的位置,但是 fancyBox 允許你使用 CSS 來改變每個(gè)塊元素的位置或者尺寸(例如:內(nèi)容區(qū)域,標(biāo)題或者縮略圖柵格)。這使你很自由的改變彈框窗口的外觀和樣式。

5. 如何禁止touch操作

當(dāng)你想內(nèi)容可選擇或者可點(diǎn)擊,有兩個(gè)選項(xiàng):

  • 設(shè)置touch:false完全禁止 touch 操作
  • 添加data-selectable="true"屬性到你的 html 元素
THE END
av素人天堂_free性亚洲_久久亚洲国产视频_国产网红在线_午夜av在线播放_欧美成人精品福利网站_热99在线观看_国产在线观看免费麻豆_日本高清在线观看_亚洲免费网站观看视频
午夜激情影院| 欧美色图综合网| 国产三级做爰在线观看| 亚洲精品国产一区二区在线| 成年人黄国产| av丝袜在线| 日本在线观看| www.99色.com| 天堂资源在线中文| 天天操天天操天天色天天要| 久久久久久青草| 国产在线播放av| 成年黄网站在线观看免费| 好男人中文字幕官网| 超碰在线人人| 男人的天堂在线视频免费观看| 国产激情在线视频| 国产区高清在线| 男女污污视频在线观看| 99re热视频在线| 国产麻豆视频| 91精品国产91久久久久久三级| 国产乱子伦三级在线播放| 免费人成福利播放| 激情av在线播放| 亚洲免费视频一区二区三区| 日本在线观看网站| а天堂8中文最新版在线官网| 国产在线视频网址| 九七久久人人| 国产亚洲精品久久久久久移动网络| 精品乱码一区二区三四区视频| 亚洲国产精品成人一区二区在线| 九九九九热精品免费视频| 国产大学生粉嫩无套流白浆| 四虎成人精品在永久在线观看| 欧美女同一区| 2020国产在线视频| 在线资源免费观看| 最新中文字幕在线视频| 91美女精品| 夜夜爽夜夜操| www.91视频| 国产激情在线观看| 毛片在线视频| aaaaaaa大片免费看| 国产一卡2卡3卡免费网站| 国产视频你懂的| 天天操天天操天天色天天要| 日本私人影院在线观看| 精品国产福利一区二区在线| 免费特级黄毛片| 日本最黄视频| 人人草人人干| 日韩黄色成人| 亚洲一本大道| 久操久操久操| 日本高清在线观看wwwww色| 97在线超碰| 国产精品久久一区二区三区不卡| 国产高清视频在线播放| 欧美色图第二页| 亚洲综合在线免费| 9i精品一二三区| gogo在线高清视频| 国产精品bbw一区二区三区| 免费毛片a线观看| 狠狠操天天操夜夜操| 欧美午夜性囗交xxxx| 国产乱码在线| 亚洲最大黄色| 91麻豆一二三四在线| 国产原创视频在线观看| 你懂的在线观看视频网站| 黄瓜视频在线观看| 亚洲欧美日韩成人网| 成av人免费青青久| lutube成人福利在线观看| 国产一区亚洲二区| eeuss影院在线观看第一页| 高清国产福利在线观看| av黄色在线| 男女午夜视频在线观看| 尤物yw193can在线观看| 亚洲视频色图| 四虎影院成人| av免费在线观看网站| 精精国产xxxx视频在线中文版| 李宗瑞系列合集久久| 亚洲网站情趣视频| 一级二级三级在线观看| 成人黄色在线电影| 国产免费永久在线观看| 黄色av免费在线| 福利网址在线| 免费观看一二区视频网站| 亚洲精品成人a| 巨大荫蒂视频欧美大片| 欧美日韩在线精品成人综合网| 超碰在线12| 在线国产中文字幕| 成人c视频免费高清在线观看| 国产精品免费视频一区一| 青青草免费观看免费视频在线| 最全影音av资源中文字幕在线| 一个人免费视频www在线观看| 亚洲天堂视频在线观看免费| 久久精品国产亚洲777| 久久久久久久影视| av在线电影网站| 国产黄在线观看免费观看不卡| 国产精品日日爱| 午夜视频在线观看网站午夜视频在线| 麻豆av免费在线观看| 麻豆网站在线| 亚洲成年人电影在线观看| 激情在线视频播放| 中文字幕久热精品视频免费| 亚洲成av人影片在线观看| 成r视频免费观看在线播放| 久久久久久久久免费视频| gogo高清在线播放免费| 久久久久久久美女| 九色蝌蚪av新入口| 精品av中文字幕在线毛片| 国产三级免费观看| 搞黄网站免费观看| 91激情在线| 一本一道波多野毛片中文在线| 99免在线观看免费视频高清| 毛片在线视频| 国产青青草在线| 俺来也官网欧美久久精品| 国产国产国产国产国产国产| heisi视频网在线观看| 超碰个人在线| 免费在线毛片| 18成人免费观看视频漫画| 福利视频网址导航| av网站在线免费看推荐| 黄视频在线免费看| www久久com| 亚洲精华国产精华| 日本免费网站| 精品国内自产拍在线视频| 九色免费视频| 欧美日韩亚洲色图| 国产一级片在线播放| 女子免费在线观看视频www| 理论视频在线| 国产女人伦码一区二区三区不卡| 国产三级视频在线播放线观看| 亚洲男人都懂的网站| 国产一区亚洲二区| 国产精品视频福利一区二区| 欧美性猛片xxxxx免费中国| 国内精品2019| 你懂的视频在线| av福利在线| 亚洲在线激情| heyzo在线欧美播放| 精品美女在线观看视频在线观看| 美女国产在线| 中国日本在线视频中文字幕| 天堂中文8资源在线8| av色在线观看| 男女羞羞视频在线观看| 四虎永久成年免费影院| 青青草免费在线| 999国产在线视频| 91九色国产在线播放| 久热精品免费视频| www.狠狠色.com| 日本中文字幕视频| 国产在线观看色| 中文字幕网站视频在线| 久草资源在线| 日本高清色图| 天天操夜夜欢| 思思99热久久精品在线6| 羞羞视频在线观看| av免费网站在线| 激情福利在线| 一区二区三区网| 国产裸舞福利在线视频合集| 国产精品美女视频免费观看软件| 在线观看污污视频| 免费男女羞羞的视频网站中文字幕| 一级特黄视频| 国产精品va在线观看视色| 亚洲日本va中文字幕久久| h视频在线播放| 黄色网址入口| 天天操夜夜欢| 国产福利片在线| 两个人日本在线观看视频| 男人操女人免费网站| √天堂8在线网| 欧美日韩视频精品二区| | 日本卡一卡2卡3卡4精品卡网站| 久久免费精品一区二区| 黄色网址免费在线观看| 国产精品自产拍在线网站| 国内精品区一区二区三| 成人亚洲欧美日韩在线观看| 国产免费麻豆视频| 亚洲精品乱码电影在线观看| 在线影视一区| 久久免费看视频| 羞羞视频立即看| 国产一区你懂的| 亚洲精华国产精华| heisi视频网在线观看| 在线中文字幕av| 日本韩国在线视频| jizz免费观看视频| 日本在线免费看| 黄色av网站在线播放| 亚洲一区免费在线| 精品欧美不卡一区二区在线观看| 在线观看av网| 欧美激情一级二级三级在线视频| 欧洲不卡视频| av免费在线观| 你懂的网站在线观看| 在线观看国产原创自拍视频| 欧美三级黄视频| 天天干天天摸| 天海翼中文字幕| 99reav2| 久操视频在线播放| 午夜色在线观看| 夜级特黄日本大片_在线| 羞羞视频在线免费看| 成人亚洲综合天堂| 国产色在线播放| 国产一二区在线观看| 国产精品麻豆一区二区三区| 超碰在线免费播放| 91天堂在线| 69av亚洲| 人人干人人看| 人人草人人干| 日本aⅴ中文| 欧美性猛交xxxx免费看蜜桃| 成人淫片免费视频95视频| 四虎成人免费| 羞羞网站在线免费观看| 天天操天天射天天插| 免费在线黄色av| 在线色视频网| 无国产精品白浆免费视| 国产精品作爱| av人人综合网| 久热av在线| 日本粉色视频在线观看| 国产va在线| 精品国产一区二区三区四区阿崩| 全部免费毛片在线播放网站| 中文在线视频观看| 青春草免费在线视频| 资源av在线| av网站一区| 国产麻豆麻豆| 免费观看一二区视频网站| 四虎成人永久地址| 免费日本一区二区三区视频| www在线观看播放免费视频日本| 精品资源在线看| 超碰97国产精品人人cao| 德国极品另类| 国产真实伦在线观看| 美女写真理伦片在线看| 中文字幕欧美日韩久久| 日本xxxxxx| 成人精品美女隐私视频| 国产污视频在线| 日本高清中文字幕在线| 78国产伦精品一区二区三区| 97在线资源| 麻豆蜜桃在线| 成人精品美女隐私视频| 性综艺节目av在线播放| 中文字幕在线永久在线视频| 国产三级在线观看| 亚洲色图图片区| 午夜大尺度福利视频| 欧美人体大胆444www| 国产写真视频在线观看| 国产一级免费黄色片| 国内外激情在线| 亚洲男人天堂影院| 在线激情小视频| 日本最黄一级片免费在线| 超碰在线网址| 66av国产| 俺来俺也去www色在线观看| 在线观看亚洲电影| 国产成人福利| 作爱视频免费观看视频在线播放激情网| www中文字幕| 国产久草在线| 影音先锋中文字幕在线| 国产激情自拍视频| 国产精品久久久久久精| 中文字幕免费在线| 午夜在线激情影院| 亚州av电影免费在线观看| 热re99久久国产精品| 91高清在线| 国产小视频在线| 天天av综合网| 国产女呦网站| 成年女人免费又黄又爽视频| 99不卡视频| 国产系列电影在线播放网址| 中文字幕高清在线观看| 91嫩草在线播放| 国产精品入口免费麻豆| 黄色av观看| 人人影院免费大片| 中文在线中文字幕| 国产精品ⅴa有声小说| 欧美a免费在线| 免费a级人成a大片在线观看| 天堂中文资源在线| 午夜在线网站| 蜜桃视频在线免费| 人人在草线视频在线观看| 青娱乐在线视频观看| 成人免费网站在线观看视频| 中文在线资源新版官网| 国产一卡2卡3卡免费网站| 青青国产视频| 免费黄色a网站| 91在线不卡| 久色视频网站| 九色视频网址| 日本福利专区在线观看| 免费看污网站| 日本不卡三区| 在线永久免费观看黄网站| 国产精品亚洲色图| 国产欧美在线观看视频| 九九热在线视频免费观看| 国产久草在线| 国产精品外围在线观看| 无遮挡又色又刺激的女人视频| 欧美性猛片xxxxx免费中国| 日本动漫理论片在线观看网站| 精品一区二区观看| 日本福利片高清在线观看| 黄色免费网站在线观看| 丰满少妇在线观看网站| av成人手机在线| 九色蝌蚪在线| 国产精品视频一区麻豆| 国产成+人+亚洲+欧美+综合| av麻豆国产| 黄网址在线永久免费观看| av黄色免费| 91精品国产91久久久久久三级| 激情六月丁香| 狂野欧美性猛交xxxx乱大交| 亚洲欧美小说国产图片| 免费高清av| 一区二区免费播放| 美女免费观看一区二区三区| 激情在线视频播放| 国产午夜精品久久久久免费视| 亚洲丝袜精品| 香蕉视频在线视频| 顶级网黄在线播放| aaaaaaa大片免费看| av第一福利在线导航| 精产国品自在线www| 中文字幕中文字幕在线十八区| 欧美一级欧美三级在线| 久久mv成人精品亚洲动漫| 黄色av网站在线看| 天天射天天爱天天射干| 日本高清不卡中文字幕| 高清色视频在线观看| 丁香婷婷在线| 俺也去.com| 国产原创在线播放| 91精彩在线视频| 麻豆精品视频入口| 麻豆免费在线观看| 在线免费观看你懂的| 在线a免费看| 国产精品剧情一区二区三区| 欧美成人精品福利网站| 97最新国自产拍视频在线完整在线看| 精品樱空桃一区二区三区| v天堂福利视频在线观看| 国产精品自拍在线观看| 亚洲成a人片77777老司机| 爱福利一区二区|