js仿微信朋友圈圖片切換展示特效



109 435 146



特效描述:js 仿微信朋友圈 圖片切換展示, <p>js仿微信朋友圈圖片切換展示特效</p>

代碼結構

1. 引入CSS

<link rel="stylesheet" type="text/css" href="css/commes.css" />
<link rel="stylesheet" href="css/photoswipe.css">
<link rel="stylesheet" href="css/default-skin/default-skin.css">

2. 引入JS

<script src="js/photoswipe.min.js"></script>
<script src="js/photoswipe-ui-default.min.js"></script>

3. HTML代碼

	<div class="container">
    	<!--用戶頭像-->
		<div class="header">
			<div><img src="images/s1_m.jpg" /></div>
		</div>
		<div class="right_con">
			<div class="demo">
            	<!--用戶名and發布時間-->
            	<div class="use">
                	<div class="usename"><span>徐靜蕾</span><em class="pub-time">剛剛</em></div>
                </div>
                <!--分享的內容-->
                <p class="fx_content">tank</p>
                <!--分享的圖片-->
                <div class="my-gallery">
                    <figure>
                        <a href="images/s1.jpg" data-size="800x1142">
                            <img src="images/s1_m.jpg" />
                        </a>
                    </figure>
                    <figure>
                        <a href="images/s2.jpg" data-size="800x1142">
                            <img src="images/s2_m.jpg" />
                        </a>
                    </figure>
                    <figure>
                        <a href="images/s3.jpg" data-size="800x1142">
                            <img src="images/s3_m.jpg" />
                        </a>
                    </figure>
                    <figure>
                        <a href="images/s4.jpg" data-size="800x1142">
                            <img src="images/s4_m.jpg" />
                        </a>
                    </figure>
                    <figure>
                        <a href="images/s5.jpg" data-size="800x1142">
                            <img src="images/s5_m.jpg" />
                        </a>
                    </figure>
                    <figure>
                        <a href="images/s3.jpg" data-size="800x1142">
                            <img src="images/s3_m.jpg" />
                        </a>
                    </figure>
                    <figure>
                        <a href="images/s4.jpg" data-size="800x1142">
                            <img src="images/s4_m.jpg" />
                        </a>
                    </figure>
                    <figure>
                        <a href="images/s5.jpg" data-size="800x1142">
                            <img src="images/s5_m.jpg" />
                        </a>
                    </figure>
                </div>
                <!--顯示的位置-->
                <div class="fx_address">南京市建鄴區</div>
            </div>
		</div>
	</div>
    <div class="container">
    	<!--用戶頭像-->
		<div class="header">
			<div><img src="images/s1_m.jpg" /></div>
		</div>
		<div class="right_con">
			<div class="demo">
            	<!--用戶名and發布時間-->
            	<div class="use">
                	<div class="usename"><span>徐靜蕾</span><em class="pub-time">12:32</em></div>
                </div>
                <!--分享的內容-->
                <p class="fx_content">你不知道的晨跑,好消息,合作談妥了!!!</p>
                <!--分享的圖片-->
                <div class="my-gallery">
                    <figure>
                        <a href="images/s1.jpg" data-size="800x1142">
                            <img src="images/s1_m.jpg" alt="Image description" />
                        </a>
                    </figure>
                </div>
                <!--顯示的位置-->
                <div class="fx_address">南京市建鄴區</div>
            </div>
		</div>
	</div>
    <div class="container">
    	<!--用戶頭像-->
		<div class="header">
			<div><img src="images/s1_m.jpg" /></div>
		</div>
		<div class="right_con">
			<div class="demo">
            	<!--用戶名and發布時間-->
            	<div class="use">
                	<div class="usename"><span>徐靜蕾</span><em class="pub-time">10:59</em></div>
                </div>
                <!--分享的內容-->
                <p class="fx_content">你不知道的晨跑,好消息,合作談妥了!!!</p>
                <!--分享的圖片-->
                <div class="my-gallery">
                    <figure>
                        <a href="images/s1.jpg" data-size="800x1142">
                            <img src="images/s1_m.jpg" alt="Image description" />
                        </a>
                    </figure>
                    <figure>
                        <a href="images/s2.jpg" data-size="800x1142">
                            <img src="images/s2_m.jpg" alt="Image description" />
                        </a>
                    </figure>
                </div>
                <!--顯示的位置-->
                <div class="fx_address"><a href="http://www.vxisgr.tw/" target="_blank">51前端</a></div>
            </div>
		</div>
	</div>
<!--以下內容不要管-->
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
	<div class="pswp__bg"></div>
	<div class="pswp__scroll-wrap">
		<div class="pswp__container">
			<div class="pswp__item"></div>
			<div class="pswp__item"></div>
			<div class="pswp__item"></div>
		</div>
		<div class="pswp__ui pswp__ui--hidden">
			<div class="pswp__top-bar">
				<div class="pswp__counter"></div>
				<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
				<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>
        <script src="js/photoswipe.min.js"></script> 
        <script src="js/photoswipe-ui-default.min.js"></script> 
        <script type="text/javascript">
            var initPhotoSwipeFromDOM = function(gallerySelector) {
                // parse slide data (url, title, size ...) from DOM elements 
                // (children of gallerySelector)
                var parseThumbnailElements = function(el) {
                    var thumbElements = el.childNodes,
                            numNodes = thumbElements.length,
                            items = [],
                            figureEl,
                            linkEl,
                            size,
                            item;
                    for (var i = 0; i < numNodes; i++) {
                        figureEl = thumbElements[i]; // <figure> element
                        // include only element nodes 
                        if (figureEl.nodeType !== 1) {
                            continue;
                        }
                        linkEl = figureEl.children[0]; // <a> element
                        size = linkEl.getAttribute('data-size').split('x');
                        // create slide object
                        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> thumbnail element, retrieving thumbnail url
                            item.msrc = linkEl.children[0].getAttribute('src');
                        }
                        item.el = figureEl; // save link to element for getThumbBoundsFn
                        items.push(item);
                    }
                    return items;
                };
                // find nearest parent element
                var closest = function closest(el, fn) {
                    return el && (fn(el) ? el : closest(el.parentNode, fn));
                };
                // triggers when user clicks on thumbnail
                var onThumbnailsClick = function(e) {
                    e = e || window.event;
                    e.preventDefault ? e.preventDefault() : e.returnValue = false;
                    var eTarget = e.target || e.srcElement;
                    // 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
                    var clickedGallery = clickedListItem.parentNode,
                            childNodes = clickedListItem.parentNode.childNodes,
                            numChildNodes = childNodes.length,
                            nodeIndex = 0,
                            index;
                    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);
                    // define options (if needed)
                    options = {
                        // define gallery index (for 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
                    if (fromURL) {
                        if (options.galleryPIDs) {
                            // parse real index when custom PIDs are used 
                            // http://photoswipe.com/documentation/faq.html#custom-pid-in-url
                            for (var j = 0; j < items.length; j++) {
                                if (items[j].pid == index) {
                                    options.index = j;
                                    break;
                                }
                            }
                        } else {
                            // in URL indexes start from 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);
                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);
                }
            };
        // execute above function
            initPhotoSwipeFromDOM('.my-gallery');
        </script>



用戶評論
大牛,別默默的看了,快登錄幫我點評一下吧!:)      登錄 | 注冊


熱門標簽: 圖片疊加 圖片層疊 圖片全屏 圖片淡出淡進 圖片淡出 圖片淡進 圖片延遲加載 圖片延遲 圖片加載 圖片翻轉 圖片旋轉 圖片放大鏡 頭像上傳 圖片上傳 圖片拖動 圖片拖拽 二維碼 圖片放大縮小 圖片縮放 圖片大小 圖片放大 圖片縮小 圖片變大 圖片變小 滾動切換 滾動條切換 帶縮略圖的幻燈片 h5圖片動畫 h5圖標動畫 html5圖片動畫 html5圖標動畫 地圖 中國地圖 世界地圖 滑動選項卡 滑動切換 圖片廣告 圖片收縮展開 圖片收縮 圖片展開 純圖片輪播 圖片輪播 圖片切換 圖片選項卡 圖標選項卡 旋轉木馬 圖片旋轉木馬 文字旋轉木馬 旋轉木馬插件 圖片滑動 圖片滑塊 圖片滾動 圖片滾動條 彈出層拖動 圖標導航 圖標菜單 自動滾動圖片輪播 選項卡切換 選項卡 切換 tab切換 頁面切換 選項卡插件 切換插件 背景切換 大圖切換 滑動手風琴 手風琴 水平手風琴 垂直手風琴 圖片手風琴 文字手風琴 手風琴插件 窗口 彈出 彈窗 彈出層 提示框 對話框 遮罩 遮罩層 彈窗插件 切換按鈕 圖表 表單 表單美化 表單插件 表單美化插件 圖片 圖片插件 頭像截圖 圖片切換 圖片選項卡 圖標選項卡 lightbox 圖片切換 切換圖片 按鈕控制
?
×
×

注冊

官方QQ群

掃描上面二維碼加微信群

官方QQ群

jQuery/js討論群
群號:642649996
Css3+Html5討論群
群號:322131262

加群請備注:從官網了解到

湖北30选5开奖结果走势图表