响应式的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');
	}
}	
全部代码书写完毕!以上就是一个使用jQuery插件开发的响应式的dribbble作品集魔术布局展示效果!
转:http://www.gbin1.com/technology/jquerytutorial/20130221-responsive-layout-for-dribbble/
响应式的dribbble作品集魔术布局展示效果的更多相关文章
- 使用Bootstrap 3开发响应式网站实践04,使用Panels展示内容
		
在Bootstrap页面中,通常用Panels来展示主要功能的内容.该部分Html为: <div class="row" id="featureHeading&qu ...
 - 关于css3媒体查询和响应式布局
		
响应式设计 响应式设计可根据所显示的屏幕大小而改变, 它呈现的每个屏幕看起来并不相同.按照可用的屏幕属性,响应式设计提供了 UI 的最佳效果. 例如,如果网站布局上有一个占据 25% 的屏幕宽度的侧边 ...
 - JQuery+HTML5+CSS3制作时间轴插件,支持响应式布局
		
一.效果图预览 (图一) (图二) 附注说明: 图一是浏览器宽度像素大于560px下的展示效果,图二是在浏览器宽度像素小于560px下的展现效果.使用的是CSS3的Media Query(媒体查询)实 ...
 - 使用Bootstrap 3开发响应式网站实践06,使用ListGroup、Thumbnails展示内容
		
□ ListGroup展示内容 当希望把同类型的内容以列表.区块展示的时候,ListGroup是不错的选择. <div class="col-sm-6"> <h3 ...
 - 使用Bootstrap 3开发响应式网站实践05,使用Tab、Modal、Form展示内容,使用Popover、Tooltip展示提示信息
		
本篇体验用Tab插件显示内容.Html部分为: <div class="row" id="moreInfo"> <div class=&quo ...
 - 移动 WEB 开发的布局方式  ----  响应式布局
		
一.响应式简介 一个页面布局兼容了 PC端 ,iPad端 和 移动端 所谓的响应式就是页面中的布局会随着屏幕的大小变化发生了响应而做出不同的页面布局模型 特点: 响应式布局是不需要单独写移动端页面的 ...
 - 使用 CSS 媒体查询创建响应式网站
		
简介 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的各种规格和形状的设备,但是网站开发人员却面临一个挑战:如何使他们的网站在传统浏览器.手机和平板电脑浏览器上有很好的效果,如何在各种大 ...
 - 分享29个超赞的响应式Web设计
		
原文自:http://www.csdn.net/article/2013-01-16/2813678-responsive-design-websites 最近几年,响应式Web设计不断印入人们眼帘, ...
 - CSS3知识点整理(五)----响应式设计及其他属性
		
介绍Media Queries与Responsive设计以及外轮廓属性.resize属性.CSS3生成内容等 学会如何使用CSS3中的Media Queries模块来让一个页面适应不同的终端(或屏幕尺 ...
 
随机推荐
- geotools导出shapefile出错: java.io.IOException: Current fid index is null, next must be called before write()
			
geotools导出shapefile出错: java.io.IOException: Current fid index is null, next must be called before wr ...
 - SVN 命令行 精编版
			
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout https://svn.sinaapp.com/beckhom 简 ...
 - ASP.NET静态页生成
			
由于业务需要,得把页面按照模板页生成静态页面,所以自己就琢磨了下,写些思路,以备日后需要的时候用. 静态页生成用到最多的就是匹配跟替换了,首先得读取模板页的html内容,然后进行你自己定义的标签匹配, ...
 - [Everyday Mathematics]20150224
			
设 $A,B$ 是 $n$ 阶实对称矩阵, 它们的特征值 $>1$. 试证: $AB$ 的特征值的绝对值 $>1$.
 - propertyGrid控件 z
			
1.如果属性是enum类型,那么自然就是下拉的. 2.如果是你自定义的下拉数据,那么需要用到转换属性标签TypeConverter 参见: http://blog.csdn.net/luyifeini ...
 - HTTP协议的状态码
			
对于Web编程人员来说,熟悉了解HTTP协议的状态码是很有必要的,很多时侯可能根据HTTP协议的状态码很快就能定位到错误信息!今天整理了一下所有HTTP状态码. HTTP状态码(HTTP Status ...
 - 从SVN导出指定版本号之间修改的文件(转)
			
从SVN导出指定版本号之间修改的文件(转) 当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他没有修改过的文 ...
 - BITED-Windows8应用开发学习札记之二:Win8应用常用视图设计
			
感觉自我表述能力有欠缺,技术也不够硬,所以之后的Windows8应用开发学习札记的文章就偏向于一些我认为较难的地方和重点了多有抱歉. 上节课是入门,这节课就已经开始进行视图设计了. Windows应用 ...
 - Scrum之Sprint物件
			
产品订单(Product Backlog) 一个需求的列表. 一般情况使用用户故事来表示backlog条目 理想情况每个需求项都对产品的客户或用户有价值 Backlog条目按照商业价值排列优先级 优先 ...
 - 25个完美的Opencart模板,让顾客无法抗拒!
			
在线开展业务是当前的流行趋势.OpenCart(点击这里下载),作为一个流行的开源PHP电子商务系统,获取OpenCart模板不在像以前那么困难了.OpenCart容易安装,模板支持良好,扩展功能包十 ...