创建一个Dribbble的作品展示
Most designers on dribbble have a personal portfolio website that usually consists of a name and a bit about themselves – maybe even some work.
When it comes to updating this static page you usually put it off in favour of the booming community of dribbble as it is thriving, less hassle and quick.
In this article I’ll explain how to create a dribbble powered portfolio that updates automatically using jRibbble.
For this tutorial I created a simple HTML template as I didn’t want to make it more complex than it really is.

The main point to this tutorial is to enable you to incorporate your dribbble feed into your own design. I am not teaching how to design or develop a page.
Let’s Get Started
I’m assuming in this tutorial you have some decent HTML & CSS knowledge and havesome understanding of JavaScript (jQuery).
Firstly we are going to start with a basic HTML5 markup and include our: stylesheet, jQuery and jRibbble.
<!DOCTYPE html>
<html>
<head>
<title>Create a Dribbble Powered Portfolio by Ultralinx</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Page Style -->
<link href="css/style.css" rel="stylesheet" >
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body> <!-- jQuery -->
<script src="http://code.jquery.com/jquery.js"></script>
<!-- jRibbble -->
<script src="js/jquery.jribbble.js"></script>
</body>
</html>
You can download the barebones of this project here (The project up to this step) and follow along.
We are then going to create a container which the feed will be displayed in and call it “dribbble-feed”. This will go inside the body.
<section class="dribbble-feed">
<!--Dribbble feed-->
</section>
This will be empty and no HTML will be written by us. jRibbble generates the HTML that will go into this container.
If we look at the page at the present it won’t display any content. This is because we have not asked jRibbble to fetch the content for us.
To do this we are going use the following javscript (jQuery) to tell jRibbble to get the shots and display the way we want.
You are in control of how it’s displayed. For this tutorial I am going to get the dribbble shots and link them to their page on dribbble.
Paste the below code outside the body but inside the html. So after “</body>” but before “</html>”.
<script type="text/javascript">
$(document).ready(function getDribbbleShots() {
$.jribbble.getShotsByPlayerId('Ultralinx', function (playerShots) {
var html = [];
$.each(playerShots.shots, function (i, shot) {
html.push('<div class="shot"><a href="' + shot.url + '" target="_blank">');
html.push('<img class="shot-image" src="' + shot.image_url + '" ');
html.push('alt="' + shot.title + '"></a></div>');
});
$('.dribbble-feed').html(html.join(''));
}, {page: 1, per_page: 9});
});
</script>
What? How does that get the shots?
Well I will break it down line by line.
$(document).ready(function () {
This calls jRibbble once the document (page) has loaded.
$.jribbble.getShotsByPlayerId('UltraLinx', function (playerShots) {
This is asking jRibbble to get the the shots for ‘Ultralinx‘. You would replace this with your dribbble username or id.
var html = [];
This creates an empty array of all the html we will generate below that will contain the shots.
$.each(playerShots.shots, function (i, shot) {
This is a for each loop. Basically it means “For Each” shot on your dribbble profile produce the following code.
html.push('<div><a href="' + shot.url + '" target="_blank">');
html.push('<img src="' + shot.image_url + '" ');
html.push('alt="' + shot.title + '"></a></div>');
});
Each tag: “+ shot.url +”, “+ shot.image_url +” and ” + shot.title +” has a line to itself. You are in control of any classes you set for CSS customisation.
This creates a div with the image inside that links to the dribbble page.
$('.dribbble-feed').html(html.join(''));
This is joins all that information stored in the array to produce the HTML and puts it in the “dribbble-feed” container we made earlier.
}, {page: 1, per_page: 9});
});
This is tells jRibbble how many shots to grab per page. This isn’t the pages on your dribbble profile. A page is define by what you choose “per_page”.
In the example I have chosen 9 shots per page which means page 2 will display shots 10-19 and so on.
If you view the page now it should display the shots. You can then use CSS to style them to suit your needs.
That’s it basically. My next tutorial will explain how to display more information and enable pagination.
Quick Last Minute Tip
As there are 9 images being loaded at once some peoples internet may not be fast enough to instantly display them all and may experience a slight delay.
We can solve this by hiding the “dribbble-feed” until the images are loaded. Place this before the code previously written.
$('.dribbble-feed').hide();
jQuery(window).load(function(){
$('.dribbble-feed').fadeIn();
});
This hides the container that will display the shots until it is fully loaded then fades it in.
You can even go that bit extra and add a loading bar then hide it when the feed is loaded.
I hope this is worthwhile to people who don’t have time to figure out the dribbble API and prefer to use jQuery in their projects.
创建一个Dribbble的作品展示的更多相关文章
- 【读书笔记《Bootstrap 实战》】2.作品展示站点
假设我们已经想好了要给自己的作品弄一个在线站点.一如既往,时间紧迫.我们需要快一点,但作品展示效果又必须专业.当然,站点还得是响应式的,能够在各种设备上正常浏览,因为这是我们向目标客户推销时的卖点.这 ...
- 【Bootstrap】2.作品展示站点
假设我们已经想好了要给自己的作品弄一个在线站点.一如既往,时间紧迫.我们需要快一点,但作品展示效果又必须专业.当然,站点还得是响应式的,能够在各种设备上正常浏览,因为这是我们向目标客户推销时的卖点.这 ...
- 通过创建一个简单的骰子游戏来探究 Python
在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏.这次,我将展示如何使用 Python 模块 Pygame 来创建一个图形化游戏.它将需要几篇文章才 ...
- 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)
搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...
- 利用django创建一个投票网站(三)
创建你的第一个 Django 项目, 第三部分 这一篇从第二部分(zh)结尾的地方继续讲起.我们将继续编写投票应用,并且聚焦于如何创建公用界面--也被称为"视图". 设计哲学 Dj ...
- linux内核分析作业6:分析Linux内核创建一个新进程的过程
task_struct结构: struct task_struct { volatile long state;进程状态 void *stack; 堆栈 pid_t pid; 进程标识符 u ...
- 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型
第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...
- Orchard入门:如何创建一个完整Module
这是一个Orchard-Modules的入门教程.在这个教程里,我们将开发两个功能页面分别用于数据录入与数据展示. 完成上述简单功能开发,我们一共需要6个步骤.分别为: 创建Module 创建Mode ...
- 第六周——分析Linux内核创建一个新进程的过程
"万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 &q ...
随机推荐
- 老男孩Day12作业:RabbitMQ-RPC版主机管理程序
一.作业需求 1.可以对指定机器异步的执行多个命令 例子: 请输入操作指令>>>:run ipconfig --host 127.0.0.0 in the call tack ...
- nginx负载均衡之入门配置
先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上 ...
- FJWC2019 全连
题目描述 有n个音符,第i个音符会在第i个时刻来临 令第 i 个音符的准备时间为 ti 个单位时间,如果选择去点击第 i 个音符,那么就没法点击所有到来时刻在 (i−ti ,i+ti)中的音符. ...
- Java线程池的选择
在java的concurrent.Executors主要提供两种线程池:无固定线程数但有限制任务队列的cachedThreadPool与有固定线程数但无任务队列限制的fixedThreadPool,这 ...
- RocketMQ消息发送的队列选择与容错策略
一个topic有多个队列,分散在不同的broker.producer在发送消息的时候,需要选择一个队列 producer发送消息全局时序图: 队列选择与容错策略结论: 在不开启容错的情况下,轮询队列进 ...
- Yii 使用Widge面面观
我们可以把Widget视为一个嵌入到控制器管理 的视图中的微控制器,其实就是.net框架中的用户控件,或者类似于.net MVC中的子视图.与controller相比较,微件没有既没有动作,也没有过滤 ...
- Asp.NET MVC 拍卖网站,拆解【1】预览与目录
本人最近带创业团队基本做完了一个艺术品拍卖的外包项目,分为网站前台(asp.net mvc5),网站管理员管理的后台使用的9900端口(asp.net mvc5),监听拍卖状态的windows服务,为 ...
- [问题解决]Fresco设置占位图不显示的问题
[问题解决]Fresco设置占位图不显示的问题 /** * Created by diql on 2017/02/15. */ 问题说明 本来设置占位图是通过以下方法: public void set ...
- c++ 网络编程(十一) LINUX下 初步制作基于HTTP的WEB服务器
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9663028.html HTTP概要 理解Web服务器端: 编写HTTP(超文本传输协议)服务器 ...
- 深入理解java集合框架之---------Arraylist集合 -----添加方法
Arraylist集合 -----添加方法 1.add(E e) 向集合中添加元素 /** * 检查数组容量是否够用 * @param minCapacity */ public void ensur ...