PhotoSwipe 官方API解讀(一)

一:getting started
開始之前要知道:
1尚镰、 PhotoSwipe需要提前預(yù)定義圖片的大小(more: http://photoswipe.com/documentation/faq.html#image-size
2萨螺、 如果您把PhotoSwipe用在非響應(yīng)式的站點上,但是這個控件也會在移動端進行縮放(因為這整個頁面就是縮放的)。所以你需要實現(xiàn)自定義控件(例如單大關(guān)閉按鈕在右上角)主到。
3、 文檔中的所有代碼都是純JS躯概,支持IE 8和以上登钥。如果你的網(wǎng)站或應(yīng)用程序使用一些JavaScript框架(如jQuery和MooTools)或你不需要支持舊的瀏覽器——隨意簡化代碼。
4娶靡、 避免使用大圖片(大于2000 x1500px)于移動端上,因為他們將大大減少動畫表現(xiàn)并且可能導(dǎo)致事故(特別是在iOS Safari)牧牢。可能的解決方案: http://photoswipe.com/documentation/responsive-images.html,或打開圖像在一個單獨的頁面,或使用庫,支持圖像鑲嵌 (比如http://leafletjs.com/)(more:http://photoswipe.com/documentation/faq.html#mobile-crash)固蛾。

安裝:
第一步:引入js css

<!-- Core CSS file -->
<link rel="stylesheet" href="path/to/photoswipe.css"> 

<!-- Skin CSS file (styling of UI - buttons, caption, etc.)
     In the folder of skin CSS file there are also:
     - .png and .svg icons sprite, 
     - preloader.gif (for browsers that do not support CSS animations) -->
<link rel="stylesheet" href="path/to/default-skin/default-skin.css"> 

<!-- Core JS file -->
<script src="path/to/photoswipe.min.js"></script> 

<!-- UI JS file -->
<script src="path/to/photoswipe-ui-default.min.js"></script> 

無論您將在哪里以及在哪里引用JS和CSS文件都無關(guān)緊要结执。只有當你寫new PhotoSwipe()的時候代碼才會執(zhí)行。因此艾凯,如果你不需要在一開始就打開文件的話献幔,就可以延遲加載文件。

第二步:向DOM添加PhotoSwipe (.pswp)元素
您可以直接在初始化之前通過JS動態(tài)地添加HTML代碼,或在頁面最初的時候(例如演示頁面上那樣)趾诗。這段代碼可以在任何地方附加,但最好在</body>標簽關(guān)閉之前蜡感。您可以在多個庫中重用它(只要使用相同的UI類)。

<!-- Root element of PhotoSwipe. Must have class pswp. -->
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
    <!-- Background of PhotoSwipe. 
         It's a separate element as animating opacity is faster than rgba(). -->
    <div class="pswp__bg"></div>
    <!-- Slides wrapper with overflow:hidden. -->
    <div class="pswp__scroll-wrap">
        <!-- Container that holds slides. 
            PhotoSwipe keeps only 3 of them in the DOM to save memory.
            Don't modify these 3 pswp__item elements, data is added later on. -->
        <div class="pswp__container">
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
        </div>
        <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
        <div class="pswp__ui pswp__ui--hidden">
            <div class="pswp__top-bar">
                <!--  Controls are self-explanatory. Order can be changed. -->
                <div class="pswp__counter"></div>
                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
                <button class="pswp__button pswp__button--share" title="Share"></button>
                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
                <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
                <!-- element will get class pswp__preloader--active when preloader is running -->
                <div class="pswp__preloader">
                    <div class="pswp__preloader__icn">
                      <div class="pswp__preloader__cut">
                        <div class="pswp__preloader__donut"></div>
                      </div>
                    </div>
                </div>
            </div>
            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
                <div class="pswp__share-tooltip"></div> 
            </div>
            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
            </button>
            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
            </button>
            <div class="pswp__caption">
                <div class="pswp__caption__center"></div>
            </div>
        </div>
    </div>
</div>

注意: pswp__bg, pswp__scroll-wrap, pswp__container 和 pswp__item elements 的順序不能變恃泪。
你可能會問郑兴,為什么PhotoSwipe沒有通過JS自動添加這段代碼,原因很簡單——只是為了保存文件大小贝乎,以防你需要修改布局情连。

第三步:初始化
執(zhí)行PhotoSwipe構(gòu)造函數(shù),它包含4個參數(shù)
.pswp element from step 2 (it must be added to DOM).
PhotoSwipe UI class. If you included default photoswipe-ui-default.js, class will be PhotoSwipeUI_Default. Can be false.
Array with objects (slides).
Options.
1览效、.pswp -----第二步中所指的元素(它必須被添加到DOM中):
2却舀、PhotoSwipe UI類 ------如果你引入了默認的photoswipe-ui-default.js, class會是PhotoSwipeUI_Default(這句沒翻譯通順)
3虫几、需要滑動的數(shù)組(slides)
4、配置項

var pswpElement = document.querySelectorAll('.pswp')[0];
// build items array
var items = [
    {
        src: 'https://placekitten.com/600/400',
        w: 600,
        h: 400
    },
    {
        src: 'https://placekitten.com/1200/900',
        w: 1200,
        h: 900
    }
];
// define options (if needed)
var options = {
    // optionName: 'option value'
    // for example:
    index: 0 // start at first slide
};
// Initializes and opens PhotoSwipe
var gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();

寫完以上這些挽拔,則可以得到以下結(jié)果

U_EN5XA3J6EI}I{CR8NXEFD.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辆脸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子螃诅,更是在濱河造成了極大的恐慌啡氢,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件术裸,死亡現(xiàn)場離奇詭異倘是,居然都是意外死亡,警方通過查閱死者的電腦和手機穗椅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門辨绊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匹表,你說我怎么就攤上這事门坷。” “怎么了袍镀?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵默蚌,是天一觀的道長。 經(jīng)常有香客問我苇羡,道長绸吸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任设江,我火速辦了婚禮锦茁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叉存。我一直安慰自己码俩,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布歼捏。 她就那樣靜靜地躺著稿存,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞳秽。 梳的紋絲不亂的頭發(fā)上瓣履,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音练俐,去河邊找鬼袖迎。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的瓢棒。 我是一名探鬼主播浴韭,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脯宿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泉粉,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤连霉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嗡靡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跺撼,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年讨彼,在試婚紗的時候發(fā)現(xiàn)自己被綠了歉井。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡哈误,死狀恐怖哩至,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜜自,我是刑警寧澤菩貌,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站重荠,受9級特大地震影響箭阶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜戈鲁,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一仇参、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧婆殿,春花似錦诈乒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寞缝,卻和暖如春癌压,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荆陆。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工滩届, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓帜消,卻偏偏與公主長得像棠枉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子泡挺,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,303評論 25 707
  • Kotlin語法糖 Kotlin 語言是一種新的靜態(tài)類型編程語言辈讶,可運行于 JVM 環(huán)境同時也能用來開發(fā) Andr...
    崔老板閱讀 1,513評論 0 1
  • 1.大學贱除,改變 當時一摸成績不理想,報志愿時報了提前批媳溺,首體的新聞與管理月幌,主修體育新聞,此專業(yè)是屬文科悬蔽,每年只招收...
    藍晶LM閱讀 431評論 0 1
  • 什么時候想聽個笑話都變得這么難蝎困? 不知道有多少人跟我一樣录语,無聊或者不開森的時候會去看個笑話來打發(fā)時間,不知道真的是...
    魯小班閱讀 436評論 0 0
  • 密密麻麻中难衰,找不到一個可以放松的釋點钦无,只能越積越深,越堵越厚盖袭,如同不能呼吸的困獸失暂,等待死神的來臨。
    冷若冰霜jia閱讀 307評論 0 0