Hôm nay namkna sẽ hướng dẫn các bạn cách tạo một tiện ích mang phong cách của tiện ích bài viết mới nhất (recent post) nhưng hiển thị dưới dạng một slider trượt ngang với các ảnh thumbnail và tiêu đề bài viết. Hiệu ứng chuyển ảnh mượt mà dựa trên thư viện JQuery. Tiện ích được phát triển bởi maskolis.
VIEW DEMO

¤ Slider bài mới nhất trượt ngang với thumbnail cho blogger!

1- Đăng nhập vào blog
2- Chọn Mẫu (Template)
3- Chọn chỉnh sủa HTML (Edit HTML)
4- Dán code sau trước thẻ ]]></b:skin>
#carousel{width:950px;height:185px;margin-bottom:0px;position:relative;display:block}
#carousel .container{position:absolute;left:49px;width:895px;height:185px;overflow:hidden;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRYYmqMR4sbVbQCXWCROqdsh2YwWyj_qCBKRQflDm6D5loCOh-XOk9OjxfElG83A37dgEXRv43HJKAE4hh5VOXdedM4MiEN7DaCBCbugPOXw3laYB2dqNEulHanR-q4Bipj6cYeTkU9pI/s1600/scroller-bg.png) repeat center}
#carousel #previous_button{position:absolute;width:49px;height:185px;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSB0C8p-x_0evg8vOnNqHlYFCg22VkcN8Hr_-zYKlIo16a9sQJuoBfd8owNWxbfvHs2dgrjMfChBWPwDJ9zgPLVguJbLPmCuxwGcsZjJk1WW3LtSudTrmOxWT37dMyCkjVawSk-6Zg3xk/s1600/prev.png) center;z-index:100;cursor:pointer;border-right:1px solid #ccc}
#carousel #previous_button:hover{background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj8p-oXJ398ZINQ7GjEL0-7w7s6bGnk-MUfZ1aHeBP7aubcWQOpw1HGT-DeE-eqRHelN30fEiH2naUnNnL_E3gg6PdSm-7yPIQOmsN3U6-oBBZHMyzw1WNPbGJklAchxz_X5C-iZBJgOY/s1600/prev.png) center}
#carousel #next_button{position:absolute;right:0;width:49px;height:185px;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpSZsjyD-beLtZNJAjMRVMvaJXJolFOKtfs6yVEaFndQB9IomHHFfupWSBgvX2IMYKkL_ZZwBmPipVuSWrW0tqXz9lANIOORFXcQySpQHayme0mXL9APxpfHrua74zzcOwkbXxtp0q3IE/s1600/next.png) center;z-index:100;cursor:pointer;border-left:1px solid #ccc}
#carousel #next_button:hover{background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwKsj2Nje1eVMww28Mk0MQxiuWMIg9dvA-NvRb_iprP8FiBhfXPY4XCz8d-KV_NaODQreGdgXrtKI9iG9nbFpunP89U0lbLh_IYiQAJuI0b8inI-zCLTYgp7sT2ZopGuY6BhEOQpKCWBs/s1600/next.png) center}
#carousel ul{width:100000px;position:relative;margin-top:10px}
#carousel ul li{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABkCAAAAACap/5LAAAACXBIWXMAAAsSAAALEgHS3X78AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAsSURBVHjaYvzPAAMs7+FMJgaEKCM2UfoqGBKGDZgjh4QVdDBskDln5DEBAwCNEQLr2H+8AwAAAABJRU5ErkJggg==) repeat-x top;display:inline;float:left;text-align:center;font-weight:700;font-size:.9em;line-height:1.2em;border:1px solid #ccc;width:145px;height:150px;margin:0 4px 20px 7px;padding:6px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
#carousel ul li:hover{filter:alpha(opacity=75);opacity:.75;}
#carousel ul li a.slider_title{color:#222;display:block;margin-top:5px}
#carousel ul li a.slider_title:hover{color:#cd1713}
#carousel a img{display:block;background:#fff;margin-top:0}
» Tùy chỉnh: 
  • width:145px;height:150px lần lượt là chiều rộng và chiều cao của khung chứa hình ảnh và tiêu đề bài viết nếu chỉnh sửa nó thì bạn phải chỉnh sửa lại cả kích thước hình ảnh ở bước 5 nha width="145" height="100"
  • Bạn có thể thay đổi các hình ảnh next và preview theo ý của bạn nha.
5- Dán code bên dưới trước thẻ </head>:
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' type='text/javascript'/>
<script src='http://yourjavascript.com/265232511102/carousellite.js' type='text/javascript'/>

<script type='text/javascript'>
//<![CDATA[
imgr = new Array();
imgr[0] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidfqpH2uWVvbBPlrn71-FutPpBrE6aCuqHe1GR-DkqpE71PN7HguUM0ppeeczpSr9p3zkuq3w2i5rRN0yx-GBzvmMDOnaaiGIOFEVOkpgNM1YTYJSy7VecqL8zjV76lNgW2cJrofXb_ek/s1600/no+image.jpg";
showRandomImg = true;

aBold = true;

summaryPost = 140;
summaryTitle = 25;

numposts1 = 15;
label1 = "news";

function removeHtmlTag(strx,chop){
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
}
}

s = s.join("");
s = s.substring(0,chop-1);
return s;
}
function showrecentposts(json) {
j = (showRandomImg) ? Math.floor((imgr.length+1)*Math.random()) : 0;
img = new Array();
document.write('<ul>');
for (var i = 0; i < numposts1; i++) {
var entry = json.feed.entry[i];
var posttitle = entry.title.$t;
var pcm;
var posturl;
if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
posturl = entry.link[k].href;
break;
}
}

for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'replies' && entry.link[k].type == 'text/html') {
pcm = entry.link[k].title.split(" ")[0];
break;
}
}

if ("content" in entry) {
var postcontent = entry.content.$t;}
else
if ("summary" in entry) {
var postcontent = entry.summary.$t;}
else var postcontent = "";
postdate = entry.published.$t;
if(j>imgr.length-1) j=0;
img[i] = imgr[j];
s = postcontent ; a = s.indexOf("<img"); b = s.indexOf("src=\"",a); c = s.indexOf("\"",b+5); d = s.substr(b+5,c-b-5);
if((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!="")) img[i] = d;
//cmtext = (text != 'no') ? '<i><font color="'+acolor+'">('+pcm+' '+text+')</font></i>' : '';
var month = [1,2,3,4,5,6,7,8,9,10,11,12];
var month2 = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var day = postdate.split("-")[2].substring(0,2);
var m = postdate.split("-")[1];
var y = postdate.split("-")[0];
for(var u2=0;u2<month.length;u2++){
if(parseInt(m)==month[u2]) {
m = month2[u2] ; break;
}
}

var daystr = day+ ' ' + m + ' ' + y ;
var trtd = '<li class="car"><div class="thumb"><a href="'+posturl+'"><img width="145" height="100" class="alignnone" src="'+img[i]+'"/></a></div><p><a class="slider_title" href="'+posturl+'">'+posttitle+'</a></p></li>';

document.write(trtd);
j++;
}
document.write('</ul>');
}
//]]>
</script>
» Tùy chỉnh:
  • numposts1 = 15; là số bài sẽ được gọi từ feed..
  • label1 = "news"; là tên của nhãn muốn gọi.
  • summaryPost = 140; là số ký tự mô tả
  • summaryTitle = 25; là số ký tự phần tiêu đề ngay bên dưới hình ảnh.
  • width="145" height="100" là chiều rộng và chiều cao của ảnh thumbnail.
  • showRandomImg = true; là lấy ảnh thumbnail ngẫu nhiên trong bài viết. Nếu muốn lấy ảnh đầu tiên thì hãy sửa true thành false.
6- Tìm thẻ:
<div id='main-wrapper'>
- Dán vào trước nó đoạn code bên dưới:
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<div id='carousel'>
<div id='previous_button'/>
<div class='container'>
<script>
document.write(&quot;&lt;script src=\&quot;/feeds/posts/default/-/&quot;+label1+&quot;?max-results=&quot;+numposts1+&quot;&amp;orderby=published&amp;alt=json-in-script&amp;callback=showrecentposts\&quot;&gt;&lt;\/script&gt;&quot;);
</script>   
<div class='clear'/>
</div>
<div id='next_button'/>
</div>
<script type='text/javascript'>
(function($) {     $(document).ready(function(){
$(&quot;#carousel .container&quot;).jCarouselLite({
    auto:4000,
    scroll: 1,
    speed: 800,   
    visible: 5,
    start: 0,
    circular: true,
    btnPrev: &quot;#previous_button&quot;,
    btnNext: &quot;#next_button&quot;
    });
    })})(jQuery)   
</script>
</b:if> 
» Tùy chỉnh: 
  • Nếu muốn lấy toàn bộ các nhãn thay vì một nhãn cụ thể thì xóa phần màu đỏ đi nha.
  • auto:4000,
  • scroll: 1,  số bài viết cuộn mỗi lần.
  • speed: 800, Thời gian chuyển ảnh (tính bằng phần nghìn giây).
  • visible: 5, Số bài viết (ảnh thumbnail và tiêu đề) hiển thị trên trang chính.
  • start: 0,
  • circular: true, 
  • Đây là link download các file ảnh và javarscrip. Các bạn có thể  tải về và upload lên host riêng để sử dụng lâu dài nha: Download now.
  • Mẫu SIMPLE đặt sau dòng: <div class='columns-inner'>
7- Lưu mẫu lại và xem kết quả nha.

¤ Cập nhật!

Hiện tại mình đã ra phiên bản 2 của tiện ích này với giao diện có nhiều cải tiến các bạn hãy xem tại đây:

¤ Trợ giúp!

Nếu có bất kỳ khó khăn nào khi áp dụng hãy để lại comment mình sẽ giải đáp cho các bạn.