日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > jquery + css 特效 之 一款基于jQuery/CSS3實現拼圖效果的相冊

jquery + css 特效 之 一款基于jQuery/CSS3實現拼圖效果的相冊

來源:程序員人生   發布時間:2015-02-16 19:51:53 閱讀次數:4018次

     今天我們要來分享1款很酷的jQuery相冊插件,首先相冊中的圖片會以1定的角度傾斜放置在頁面上,點擊圖片縮略圖就能夠展開圖片,并且圖片是由所有縮略圖拼接而成,圖片展開和收攏的動畫效果也非常不錯。固然圖片傾斜需要CSS3支持。效果圖以下:


本章主要參照了以下文章進行學習

jquery:http://www.itmmd.com/tag/jquery.html

jQuery教程(31)-jQuery插件開發之全局函數插件
jQuery教程(30)-jQuery插件開發之自定義選擇符
jQuery教程(29)-jQuery插件開發之為插件方法指定參數
jQuery教程(28)-jQuery插件開發之使用插件
jQuery教程(27)-jQueryajax操作之修改默許選項


實現的代碼。

html代碼:

復制代碼
<div id="im_wrapper" class="im_wrapper"> <div style="background-position: 0px 0px;"> <img src="images/thumbs/1.jpg" alt="" /></div> <div style="background-position: ⑴25px 0px;"> <img src="images/thumbs/2.jpg" alt="" /></div> <div style="background-position: ⑵50px 0px;"> <img src="images/thumbs/3.jpg" alt="" /></div> <div style="background-position: ⑶75px 0px;"> <img src="images/thumbs/4.jpg" alt="" /></div> <div style="background-position: ⑸00px 0px;"> <img src="images/thumbs/5.jpg" alt="" /></div> <div style="background-position: ⑹25px 0px;"> <img src="images/thumbs/6.jpg" alt="" /></div> <div style="background-position: 0px ⑴25px;"> <img src="images/thumbs/7.jpg" alt="" /></div> <div style="background-position: ⑴25px ⑴25px;"> <img src="images/thumbs/8.jpg" alt="" /></div> <div style="background-position: ⑵50px ⑴25px;"> <img src="images/thumbs/9.jpg" alt="" /></div> <div style="background-position: ⑶75px ⑴25px;"> <img src="images/thumbs/10.jpg" alt="" /></div> <div style="background-position: ⑸00px ⑴25px;"> <img src="images/thumbs/11.jpg" alt="" /></div> <div style="background-position: ⑹25px ⑴25px;"> <img src="images/thumbs/12.jpg" alt="" /></div> <div style="background-position: 0px ⑵50px;"> <img src="images/thumbs/13.jpg" alt="" /></div> <div style="background-position: ⑴25px ⑵50px;"> <img src="images/thumbs/14.jpg" alt="" /></div> <div style="background-position: ⑵50px ⑵50px;"> <img src="images/thumbs/15.jpg" alt="" /></div> <div style="background-position: ⑶75px ⑵50px;"> <img src="images/thumbs/16.jpg" alt="" /></div> <div style="background-position: ⑸00px ⑵50px;"> <img src="images/thumbs/17.jpg" alt="" /></div> <div style="background-position: ⑹25px ⑵50px;"> <img src="images/thumbs/18.jpg" alt="" /></div> <div style="background-position: 0px ⑶75px;"> <img src="images/thumbs/19.jpg" alt="" /></div> <div style="background-position: ⑴25px ⑶75px;"> <img src="images/thumbs/20.jpg" alt="" /></div> <div style="background-position: ⑵50px ⑶75px;"> <img src="images/thumbs/21.jpg" alt="" /></div> <div style="background-position: ⑶75px ⑶75px;"> <img src="images/thumbs/22.jpg" alt="" /></div> <div style="background-position: ⑸00px ⑶75px;"> <img src="images/thumbs/23.jpg" alt="" /></div> <div style="background-position: ⑹25px ⑶75px;"> <img src="images/thumbs/24.jpg" alt="" /></div> </div> <div id="im_loading" class="im_loading"> </div> <div id="im_next" class="im_next"> </div> <div id="im_prev" class="im_prev"> </div> <div> </div>
復制代碼

js代碼:

復制代碼
(function ($, sr) { var debounce = function (func, threshold, execAsap) { var timeout; return function debounced() { var obj = this, args = arguments; function delayed() { if (!execAsap) func.apply(obj, args); timeout = null; }; if (timeout) clearTimeout(timeout); else if (execAsap) func.apply(obj, args); timeout = setTimeout(delayed, threshold || 100); }; } //smartresize jQuery.fn[sr] = function (fn) { return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); }; })(jQuery, 'smartresize'); </script> <script type="text/javascript"> $(function () { //check if the user made the //mistake to open it with IE var ie = false; if ($.browser.msie) ie = true; //flag to control the click event var flg_click = true; //the wrapper var $im_wrapper = $('#im_wrapper'); //the thumbs var $thumbs = $im_wrapper.children('div'); //all the images var $thumb_imgs = $thumbs.find('img'); //number of images var nmb_thumbs = $thumbs.length; //image loading status var $im_loading = $('#im_loading'); //the next and previous buttons var $im_next = $('#im_next'); var $im_prev = $('#im_prev'); //number of thumbs per line var per_line = 6; //number of thumbs per column var per_col = Math.ceil(nmb_thumbs / per_line) //index of the current thumb var current = ⑴; //mode = grid | single var mode = 'grid'; //an array with the positions of the thumbs //we will use it for the navigation in single mode var positionsArray = []; for (var i = 0; i < nmb_thumbs; ++i) positionsArray[i] = i; //preload all the images $im_loading.show(); var loaded = 0; $thumb_imgs.each(function () { var $this = $(this); $('<img/>').load(function () { ++loaded; if (loaded == nmb_thumbs * 2) start(); }).attr('src', $this.attr('src')); $('<img/>').load(function () { ++loaded; if (loaded == nmb_thumbs * 2) start(); }).attr('src', $this.attr('src').replace('/thumbs', '')); }); //starts the animation function start() { $im_loading.hide(); //disperse the thumbs in a grid disperse(); } //disperses the thumbs in a grid based on windows dimentions function disperse() { if (!flg_click) return; setflag(); mode = 'grid'; //center point for first thumb along the width of the window var spaces_w = $(window).width() / (per_line + 1); //center point for first thumb along the height of the window var spaces_h = $(window).height() / (per_col + 1); //let's disperse the thumbs equally on the page $thumbs.each(function (i) { var $thumb = $(this); //calculate left and top for each thumb, //considering how many we want per line var left = spaces_w * ((i % per_line) + 1) - $thumb.width() / 2; var top = spaces_h * (Math.ceil((i + 1) / per_line)) - $thumb.height() / 2; //lets give a random degree to each thumb var r = Math.floor(Math.random() * 41) - 20; /* now we animate the thumb to its final positions; we also fade in its image, animate it to 115x115, and remove any background image of the thumb - this is not relevant for the first time we call disperse, but when changing from single to grid mode */ if (ie) var param = { 'left': left + 'px', 'top': top + 'px' }; else var param = { 'left': left + 'px', 'top': top + 'px', 'rotate': r + 'deg' }; $thumb.stop() .animate(param, 700, function () { if (i == nmb_thumbs - 1) setflag(); }) .find('img') .fadeIn(700, function () { $thumb.css({ 'background-image': 'none' }); $(this).animate({ 'width': '115px', 'height': '115px', 'marginTop': '5px', 'marginLeft': '5px' }, 150); }); }); } //controls if we can click on the thumbs or not //if theres an animation in progress //we don't want the user to be able to click function setflag() { flg_click = !flg_click } /* when we click on a thumb, we want to merge them and show the full image that was clicked. we need to animate the thumbs positions in order to center the final image in the screen. The image itself is the background image that each thumb will have (different background positions) If we are currently seeing the single image, then we want to disperse the thumbs again, and with this, showing the thumbs images. */ $thumbs.bind('click', function () { if (!flg_click) return; setflag(); var $this = $(this); current = $this.index(); if (mode == 'grid') { mode = 'single'; //the source of the full image var image_src = $this.find('img').attr('src').replace('/thumbs', ''); $thumbs.each(function (i) { var $thumb = $(this); var $image = $thumb.find('img'); //first we animate the thumb image //to fill the thumbs dimentions $image.stop().an
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久草网站| 毛片av网站 | www亚洲精品 | 午夜成人免费视频 | 国产精品自拍片 | 精品91| 激情片网站 | 欧洲一区二区三区免费视频 | 国产高清精品在线 | 久久精品2019中文字幕 | 成人伊人网| 久久精品国产一区二区 | 亚洲 欧美 综合 | 男女在线观看视频 | 日本免费福利视频 | 亚洲欧洲成人 | 亚洲色图偷拍自拍 | 国产一区二区三区高清视频 | 麻豆网站 | 国产色女 | 在线成人www免费观看视频 | 99精品网| 国内精品久久久久久久 | 激情中文字幕 | 久久精品一区二区 | 久久这里都是精品 | 久久久青草婷婷精品综合日韩 | 国产精品一区二区三区四区五区 | 日韩免费视频一区二区 | 欧美日韩国产精品一区 | 91亚洲精品乱码久久久久久蜜桃 | 免费在线性爱视频 | 99久久这里只有精品 | 日本久久精品视频 | 国产午夜精品一区二区 | 在线一区二区三区 | 精品欧美一区二区久久久伦 | 91精品国产欧美一区二区 | 精品一区二区不卡 | 极品一区 | 91精彩视频在线观看 |