日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

photoswipe.min.js 使用

發布時間:2024/3/24 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 photoswipe.min.js 使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個類似于手機img展示的js插件

photoswipe的官網 http://photoswipe.com/

首先引入插件里的必須文件

<link rel="stylesheet" type="text/css" href="../public/css/default-skin/default-skin.css"/> <link rel="stylesheet" type="text/css" href="../public/css/photoswipe.css"/> <script type="text/javascript" src="../public/js/photoswipe.min.js"></script> <script type="text/javascript" src="../public/js/photoswipe-ui-default.min.js"></script>

頁面布局需要固定格式

<!--data-pswp-uid在每個相冊中必須是唯一的,data-size指定放大時圖片顯示的寬和高--> <div class="my-gallery clearfix" data-pswp-uid="1"><figure ng-repeat="pic in items.imageDetails" ><div class="aixin_pic_con"><a href="{{pic.url}}" data-size="670x712"><img src="img/diary_list01.fw.png" ng-src="{{pic.url}}"></a></div><figcaption style="display:none;" ng-bind="items.crowdTitle">在這里可增加圖片描述</figcaption></figure> </div>

為了在多個頁面實現插件的調用使用 便把所有的代碼寫入一條js里面引入 代碼

固定的html代碼每個想要調用的頁面都需要引入

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

固定的js調用方法,每個頁面也需要引入

(function() {var initPhotoSwipeFromDOM = function(gallerySelector) { // console.log(gallerySelector)// 解析來自DOM元素幻燈片數據(URL,標題,大小...)// (children of gallerySelector)var parseThumbnailElements = function(el) {var thumbElements = el.childNodes,numNodes = thumbElements.length,items = [],figureEl,linkEl,size,item,divEl;// console.log(el)for(var i = 0; i < numNodes; i++) { figureEl = thumbElements[i]; // <figure> element // 僅包括元素節點 if(figureEl.nodeType !== 1) { continue; } divEl = figureEl.children[0]; linkEl = divEl.children[0]; // <a> element size = linkEl.getAttribute('data-size').split('x'); // 創建幻燈片對象 item = { src: linkEl.getAttribute('href'), w: parseInt(size[0], 10), h: parseInt(size[1], 10) }; if(figureEl.children.length > 1) { // <figcaption> content item.title = figureEl.children[1].innerHTML; } if(linkEl.children.length > 0) { // <img> 縮略圖節點, 檢索縮略圖網址 item.msrc = linkEl.children[0].getAttribute('src'); } item.el = figureEl; // 保存鏈接元素 for getThumbBoundsFn items.push(item); } return items; }; // 查找最近的父節點 var closest = function closest(el, fn) { return el && ( fn(el) ? el : closest(el.parentNode, fn) ); }; // 當用戶點擊縮略圖觸發 var onThumbnailsClick = function(e) { e = e || window.event; e.preventDefault ? e.preventDefault() : e.returnValue = false; var eTarget = e.target || e.srcElement; // console.log(eTarget) // find root element of slide 查找幻燈片的根元素 var clickedListItem = closest(eTarget, function(el) { return (el.tagName && el.tagName.toUpperCase() === 'FIGURE'); }); if(!clickedListItem) { return; } // find index of clicked item by looping through all child nodes 通過遍歷所有子節點,找到單擊項的索引 // alternatively, you may define index via data- attribute 或者,您可以通過data - attribute定義索引 var clickedGallery = clickedListItem.parentNode, childNodes = clickedListItem.parentNode.childNodes, numChildNodes = childNodes.length, nodeIndex = 0, index; // console.log(clickedGallery) for (var i = 0; i < numChildNodes; i++) { if(childNodes[i].nodeType !== 1) { continue; } if(childNodes[i] === clickedListItem) { index = nodeIndex; break; } nodeIndex++; } if(index >= 0) { // open PhotoSwipe if valid index found openPhotoSwipe( index, clickedGallery ); } return false; }; // parse picture index and gallery index from URL (#&pid=1&gid=2) var photoswipeParseHash = function() { var hash = window.location.hash.substring(1), params = {}; if(hash.length < 5) { return params; } var vars = hash.split('&'); for (var i = 0; i < vars.length; i++) { if(!vars[i]) { continue; } var pair = vars[i].split('='); if(pair.length < 2) { continue; } params[pair[0]] = pair[1]; } if(params.gid) { params.gid = parseInt(params.gid, 10); } return params; }; var openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) { var pswpElement = document.querySelectorAll('.pswp')[0], gallery, options, items; items = parseThumbnailElements(galleryElement); // console.log(galleryElement) // 這里可以定義參數 options = { barsSize: { top: 100, bottom: 100 }, fullscreenEl : false, // shareButtons: [ // {id:'wechat', label:'分享微信', url:'#'}, // {id:'weibo', label:'新浪微博', url:'#'}, // {id:'download', label:'保存圖片', url:'{{raw_image_url}}', download:true} // ], // define gallery index (for URL) 定義圖庫索引(用于URL) galleryUID: galleryElement.getAttribute('data-pswp-uid'), getThumbBoundsFn: function(index) { // See Options -> getThumbBoundsFn section of documentation for more info var thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail pageYScroll = window.pageYOffset || document.documentElement.scrollTop, rect = thumbnail.getBoundingClientRect(); return {x:rect.left, y:rect.top + pageYScroll, w:rect.width}; } }; // PhotoSwipe opened from URL PhotoSwipe從URL打開 if(fromURL) { if(options.galleryPIDs) { // parse real index when custom PIDs are used 使用定制pid時解析真實索引 for(var j = 0; j < items.length; j++) { if(items[j].pid == index) { options.index = j; break; } } } else { // in URL indexes start from 1 在URL索引中,從1開始 options.index = parseInt(index, 10) - 1; } } else { options.index = parseInt(index, 10); } // exit if index not found if( isNaN(options.index) ) { return; } if(disableAnimation) { options.showAnimationDuration = 0; } // Pass data to PhotoSwipe and initialize it gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options); gallery.init(); }; // loop through all gallery elements and bind events var galleryElements = document.querySelectorAll( gallerySelector ); // console.log(galleryElements.length) for(var i = 0, l = galleryElements.length; i < l; i++) { galleryElements[i].setAttribute('data-pswp-uid', i+1); galleryElements[i].onclick = onThumbnailsClick; } // Parse URL and open gallery if it contains #&pid=3&gid=1 var hashData = photoswipeParseHash(); if(hashData.pid && hashData.gid) { openPhotoSwipe( hashData.pid , galleryElements[ hashData.gid - 1 ], true, true ); } }; //延遲后執行 避免開始獲取不到 setTimeout(function(){ // execute above function initPhotoSwipeFromDOM('.my-gallery'); },600) })();

**需要注意的是每個結構必須一致,方法也要在頁面加載以后調用不然點擊以后可能會遇到頁面跳轉道圖片地址的情況。

**可根據自己情況進行改動

總結

以上是生活随笔為你收集整理的photoswipe.min.js 使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲美女视频网站 | 精品欧美久久久 | 一级大片在线观看 | 嫩模啪啪 | 久久久久久艹 | 91精品国产成人 | 伊人影院在线播放 | 一级黄色大片在线观看 | 第一次破处视频 | 91在线一区| 国产高清一区二区三区四区 | 久久99久| 粉嫩欧美一区二区三区 | 国产精品爽爽久久久久久 | 精品国产乱码久久久久久浪潮 | 一区二区久久 | 天堂中文在线网 | 中文字幕av专区dvd | 500部大龄熟乱视频 亚洲乱码精品 | 伊人网在线视频观看 | 哈利波特3在线观看免费版英文版 | 国产美女在线观看 | 午夜尤物| 免费av观看网站 | 亚洲狼人av | 国产女人视频 | 日韩高清免费观看 | 久久av导航 | 欧美一区二区日韩 | 韩国av不卡 | 一级aa毛片 | 久久99精品视频 | 亚洲性综合网 | 91精品国产高清一区二区三蜜臀 | 男人天堂亚洲天堂 | 先锋资源中文字幕 | 久久精品动漫 | 麻豆影视在线观看 | 九九热免费精品视频 | 天堂中文网 | 日本一级做a爱片 | 久久一二三四区 | 全黄一级播放 | 欧美视频二区 | 中国老头性行为xxxx | 九九精品在线观看视频 | 欧美激情欧美激情在线五月 | 国偷自拍第113页 | 美女毛毛片 | 黄网地址| 99riAv国产精品无码鲁大师 | 欧美一级艳片视频免费观看 | 野花中文免费观看6 | 强行挺进白丝老师里呻吟 | 97视频国产 | 亚洲视频观看 | 欧美亚洲日本 | 日本美女久久久 | 一级黄色a视频 | 欧美黄色免费视频 | 无人在线观看高清视频 | 四虎国产精品永久在线国在线 | 久久99精品久久久久久国产越南 | 亚洲欧美日韩精品久久亚洲区 | 美女脱了内裤喂我喝尿视频 | 国产吞精囗交免费视频网站 | 二区三区| 成年人免费黄色 | 亚洲毛片在线看 | 懂色av一区| 国产911在线观看 | 国产经典自拍 | 欧美裸体视频 | 原创真实夫妻啪啪av | 久色精品| 宅男的天堂 | 超碰首页| 在线观看免费www | 91色漫| 日批视频免费看 | 嫩操影院 | 天天做夜夜爱 | 国产理论片在线观看 | 欧美激情视频一区二区三区在线播放 | 老司机午夜免费福利 | 91成人免费观看 | a级片在线观看 | 亚洲黄色免费在线观看 | 日本精品视频在线播放 | 欧美人与性动交g欧美精器 国产在线视频91 | 另类男人与善交video | 成人久久久久久 | 小早川怜子一区二区三区 | www.婷婷.com| 99久久婷婷 | 97超碰人人 | 男女视频免费网站 | 无码人妻精品一区二区三区温州 | 亚洲精品在线观 |