创建一个Dribbble的作品展示

系统 1434 0

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.

Download Source  |  Live Demo

创建一个Dribbble的作品展示


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论