萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> 交互設計 >> 響應式dribbble設計作品之瀑布流布局效果

響應式dribbble設計作品之瀑布流布局效果

相信做設計的朋友肯定都知道dribbble.com,它是一個非常棒的設計師分享作品的網站,全世界數以萬計的設計高手和行家都在這個網站上分享自己的作品,當然,如果你常在上面閒逛的話,經常得到一些免費的好東西。

在今天的這篇jQuery教程中,我們將使用jQuery的幾個插件來開發一個響應式的瀑布流應用,這個應用可以幫助你實時的從dribbble上得到最流行的設計作品,我們將使用如下幾個插件:

•isotope : 一個魔術布局插件,可以幫助你構建瀑布流的頁面布局方式(注意不免費的哦)

•Jribbble :一個幫助你方便調用dribbble API的jQuery插件

•imagesloaded:一個幫助你預先加載圖片的jQuery插件

第一步:使用jribbble來取得最受歡迎的dribbble設計內容

首先呢,我們需要使用jribbble來取得最受歡迎的設計作品,代碼如下:

$.jribbble.getShotsByList(“popular”, function(data){

$.each(data.shots, function (i, shot) {

/* 這裡我們取得dribbble中的作品,注意我們得到所有的“最受歡迎”作品列表 */

});

},

{page: pagenum, per_page: 10});

使用以上代碼,我們可以分頁取得dribbble的最新設計,這裡我們提供 pagenum 和 per_page參數,分別代碼當前頁和每頁顯示作品數。

在$.each方法中的callback方法中,我們可以獲取相關的數據,然後將數據組織成我們需要生成的html頁面元素,代碼如下:

var items = [];$.each(data.shots, function (i, shot) {

items.push(‘<article>’);

items.push(‘<div class=“details”><h2>’ + shot.title + ‘</h2></div>’);

items.push(‘<a href=“’ + shot.url + ‘” target=“_blank” class=“linkc”>’);

items.push(‘<img src=“’ + shot.image_teaser_url + ‘” alt=“’ + shot.title + ‘”>’);

items.push(‘</a>’);

items.push(‘<div class=“author”>設計師:<a href=“’ + shot.player.url + ‘”>’ + shot.player.name + ‘</a></div></article>’);

});

在以上代碼中,我們生成了每一個設計作品的內容,可以看到我們可以獲取作品的標題,設計者,作品地址等等。

第二步:使用isotope來生成一個瀑布流布局效果

上面我們得到了需要展示的內容,接下來我們將內容添加在瀑布流展示的容器中。

注意:如果你在瀑布流布局中使用比較大的圖片的話,經常會發現元素有互相疊加的問題,這是因為圖片加載過慢,所以在圖片加載完畢之前isotope就完成了布局定位,為了解決這個問題,你需要將圖片預先加載

以下代碼生成一個瀑布流布局對象:

$wallcontent.isotope({

itemSelector : ‘article’

});

接下來我們將上面取得的設計作品添加到這個瀑布流對象中,代碼如下:

var newEls = items.join(‘’);

var testcontent = $(newEls);

$wallcontent.append(testcontent);

$wallcontent.imagesLoaded(function(){

$wallcontent.isotope(‘appended’, testcontent).isotope(‘reLayout’);

$showmore.text(‘更多設計 (More)。..’).bind(‘click’, loadshots);

});

我們將第一步生成的設計項目使用appended方法添加到isotope中,並且重新布局。這樣就生成了一個動態瀑布流的布局效果。

第三步:一些錦上添花的功能

這裡我們為了更好的用戶體驗,添加了一個back to top的功能按鈕,當用戶浏覽很多頁的設計作品後,可以方便的滾動到頂端。代碼如下:

$(function(){

$(‘body’).append(‘<div id=“backtotop” class=“showme”><div class=“bttbg”></div></div>’);

initGoToTop();

});

function initGoToTop() {

var orig_scroll_height = jQuery(“#footer”).position().top - jQuery(window).height() - 200;

// fade in #top_button

jQuery(function () {

jQuery(window).scroll(function () {

//console.log(jQuery(this).scrollTop());

if (jQuery(this).scrollTop() > 100) {

jQuery(‘#backtotop’).addClass(‘showme’);

} else {

jQuery(‘#backtotop’).removeClass(‘showme’);

}

});

// scroll body to 0px on click

jQuery(‘#backtotop’).click(function () {

jQuery(‘body,html’).animate({

scrollTop: 0

}, 400);

return false;

});

});

if (jQuery(window).scrollTop() == 0) {

jQuery(‘#backtotop’).removeClass(‘showme’);

}else{

jQuery(‘#backtotop’).addClass(‘showme’);

}

}

響應式dribbble設計作品之瀑布流布局效果 三聯

全部代碼書寫完畢!以上就是一個使用jQuery插件開發的響應式的dribbble作品集魔術布局展示效果.

via gbtags 

來源:超酷的響應式dribbble設計作品瀑布流布局效果

copyright © 萬盛學電腦網 all rights reserved