Kamis, 26 Januari 2012
Cara Menampilkan Jumlah Posting dan Jumlah Komentar Blogger
Tampilkan Jumlah Posting dan Jumlah Komentar dengan JSON
Tambahkan sebuah elemen halaman HTML/JavaScript, kemudian letakkan kode ini di dalam formulirnya:<style type="text/css">
#counter {
margin:10px 60px 10px 10px;
background-color:#990000;
font:bold 12px Cambria,Georgia,Serif;
color:#fff;
position:relative;
display:block;
line-height:50px;
padding:0px 0px 0px 30px;
left:-10px;
}
#counter:before {
content:"";
width:0px;
height:0px;
border:5px solid transparent;
border-top-color:#bb0000;
border-right-color:#bb0000;
position:absolute;
top:100%;
left:0px;
}
#counter:after {
content:"";
width:0px;
height:0px;
border:25px solid #990000;
position:absolute;
top:0px;
left:100%;
border-right-color:transparent;
}
</style>
<script type="text/javascript">
function showpostcount(json) {
document.write(parseInt(json.feed.openSearch$totalResults.$t,10));
}
</script>
<div id="counter">
<script src="/feeds/posts/summary?max-results=0&alt=json-in-script&callback=showpostcount"></script> Posting & <script src="/feeds/comments/summary?max-results=0&alt=json-in-script&callback=showpostcount"></script> Komentar
</div>Klik Simpan.
Label: JavaScript, Komentar, Posting, Widget
Sabtu, 07 Januari 2012
Membuat Kotak Dialog dengan JQuery
Suatu saat Saya pernah mendapati seorang pendatang yang mengunjungi blog Saya dari kata kunci yang kurang lebihnya seperti ini:
membuat jquery ui dialog di blogspot
Tidak. Jangan pernah melakukan itu. Itu pemborosan! Menerapkan JQuery UI Dialog di dalam blog Saya sebut sebagai pemborosan karena JQuery UI tidak hanya sebatas untuk menciptakan kotak dialog saja. Bagi Saya, JQuery UI cakupannya terlalu besar jika hanya diterapkan untuk sebuah blog. Apalagi jika itu difungsikan untuk menciptakan kotak dialog saja. Alternatifnya adalah, cukup dengan membuat sebuah kerangka kotak dialog dengan kode HTML dan CSS, kemudian atur kemunculannya dengan JQuery yang umum dipakai seperti .show(), .slideDown() dan .fadeIn():
Kerangka dan Konten
Pada contoh di atas Saya menerapkan kotak dialog sebagai formulir login, tapi itu tidak mutlak. Anda bisa menggunakan kotak dialog ini untuk apa saja, selama Anda tahu bagaimana cara menerapkan elemen pemicu pada tempat yang tepat untuk membuka kotak dialog. Elemen pemicu Saya buat berupa class="open-dialog". Kelas ini bisa diterapkan pada tombol atau link untuk memicu kemunculan kotak dialog:
<button class='open-dialog'>Buka Dialog</button><a class='open-dialog' href='#'>Buka Dialog</a>Kerangka dialog terdiri dari sebuah elemen induk #kotak-dialog, elemen <h3> sebagai judul, overlay sebagai tabir hitam dan beberapa tombol sebagai pemicu aksi lain:
HTML
<!-- START DIALOG BOX -->
<div id='kotak-dialog'>
<h3 class='title'>Kotak Dialog<a href='#' class='close'>×</a></h3>
<div class='isi-dialog'>
Apakah Anda yakin dan tetap ingin melakukan ini?
<div class='button-wrapper'>
<button class='okeh'>OK</button>
<button class='close'>Cancel</button>
</div>
</div>
</div> <!-- end kotak-dialog -->
<div id='dialog-overlay'></div>
<!-- END DIALOG BOX -->CSS
#kotak-dialog {
position:absolute;
top:20%;
left:50%;
margin:0px 0px 0px -200px;
width:400px;
height:auto;
background-color:#fff;
-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.4);
-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.4);
box-shadow:0px 1px 2px rgba(0,0,0,0.4);
z-index:1000;
display:none;
}
#kotak-dialog *:focus {
outline:none;
}
#kotak-dialog h3.title {
background-color:#3B5998;
padding:10px 15px;
color:#fff;
font:normal 16px Arial,Sans-Serif;
margin:0px 0px 0px 0px;
position:relative;
}
#kotak-dialog h3.title a {
position:absolute;
top:10px;
right:15px;
color:#fff;
text-decoration:none;
cursor:pointer;
}
#kotak-dialog .isi-dialog {
margin:15px;
font:normal 12px Arial,Sans-Serif;
}
#kotak-dialog .button-wrapper {
padding:10px 15px 0px;
border-top:1px solid #ddd;
margin-top:15px;
}
#kotak-dialog .button-wrapper button {
background-color:#FF0C39;
border:none;
font:bold 12px Arial,Sans-Serif;
color:#fff;
padding:5px 10px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
cursor:pointer;
}
#kotak-dialog .button-wrapper button:hover {
background-color:#aaa;
}
#dialog-overlay {
position:fixed !important;
position:absolute;
z-index:999;
top:0px;
right:0px;
bottom:0px;
left:0px;
background-color:#000;
display:none;
}JQuery
$(function() {
//Tampilkan kotak dialog saat .open-dialog diklik
$('.open-dialog').click(function() {
$('#kotak-dialog').show();
$('#dialog-overlay').fadeTo("normal", 0.4);
return false;
});
//Tutup kotak dialog saat .close diklik
$('#kotak-dialog .close').click(function() {
$('#kotak-dialog').fadeOut();
$('#dialog-overlay').hide();
return false;
});
//Aksi utama dituliskan di sini, saat tombol OK diklik
$('#kotak-dialog .okeh').click(function() {
alert("Hapus alert box ini kemudian ganti dengan fungsi tertentu.");
});
});Jangan lupa juga untuk memuat library JQuery sebelum menerapkan kode di atas, jika tidak, kode di atas tidak akan pernah bekerja (pelajari tentang JQuery di sini).
Semoga cara singkat ini bisa lebih menghemat baris kode sehingga tidak akan memperberat proses pemuatan halaman blog Anda.
Label: JQuery, Menengah, Widget
Jumat, 06 Januari 2012
Efek Daun Berguguran dengan JavaScript
Tambahkan sebuah elemen halaman HTML/JavaScript kemudian salin kode ini dan letakkan di dalam formulirnya:
<script type="text/javascript">
var snowsrc = "http://2.bp.blogspot.com/-6yjsKoliL_Q/TwlTuQtV3WI/AAAAAAAAB6k/VyKxfGKFBpM/s1600/daun-kecil.png"; // Tentukan URL gambar daun/salju
var no = 10; // Tentukan jumlah daun/salju
var hidesnowtime = 0; // Menentukan apakah daun/salju harus menghilang setelah x detik (0 = tidak pernah)
var snowdistance = "pageheight"; // Menentukan berapa banyak daun/salju yang harus jatuh sebelum akhirnya menghilang ("windowheight" atau "pageheight")
</script>
<script type="text/javascript" src="http://hompimpa.googlecode.com/files/snow.js"></script>Label: Efek, JavaScript, Widget
Kamis, 05 Januari 2012
Membuat Kotak Pesan Muncul dari Atas dengan JQuery
Kali ini Saya akan memberikan satu lagi tip sederhana, dan masih menggunakan potongan kode yang sama seperti saat Anda menciptakan efek animasi loading dengan JQuery. Pada intinya di sini Saya akan menganimasikan nilai top untuk menciptakan efek kotak pesan yang muncul dari atas perlahan-lahan. Saya menggunakan dua bahan utama, yaitu potongan kode ini dan sedikit pemanfaatan efek .animate() (pelajari di sini) untuk menciptakan efek animasi kotak pesan mucul dari atas menuju ke bawah:
HTML
Pertama-tama kita bangun kerangka kotak pesan seperti ini. Sangat sederhana, hanya terdiri dari sebuah area dan sebuah tautan yang akan kita jadikan sebagai tombol penutup kotak pesan:
<div id='kotak-pesan'>
<!-- KONTEN DI SINI -->
<a class='close' href='#'>×</a>
</div>CSS
Setelah itu berikan beberapa sentuhan, terutama mengenai posisi, karena di sini kita akan membuat kotak pesan melayang, jadi aturlah posisinya agar melayang. Perhatikan bahwa Saya menuliskan nilai top sebesar -1000px. Hal ini akan membuat kotak tidak terlihat karena posisinya terletak -1000 piksel jauh di atas layar peramban:
#kotak-pesan {
position:fixed !important;
position:absolute; /* IE6 */
top:-1000px;
left:50%;
width:300px;
margin:0 0 0 -182px;
height:auto;
padding:16px;
background-color:#E9CF5F;
border:2px solid white;
font:normal normal 1em Cambria,Georgia,Serif;
color:#111;
-webkit-box-shadow:0 1px 3px rgba(0,0,0,.4);
-moz-box-shadow:0 1px 3px rgba(0,0,0,.4);
box-shadow:0 1px 3px rgba(0,0,0,.4);
}
#kotak-pesan a.close {
position:absolute;
top:-10px;
right:-10px;
background-color:#333;
font:normal bold 16px Arial,Sans-Serif;
text-decoration:none;
line-height:22px;
width:22px;
text-align:center;
color:white;
border:2px solid white;
-webkit-box-shadow:0 1px 2px rgba(0,0,0,.4);
-moz-box-shadow:0 1px 2px rgba(0,0,0,.4);
box-shadow:0 1px 2px rgba(0,0,0,.4);
-webkit-border-radius:22px;
-moz-border-radius:22px;
border-radius:22px;
cursor:pointer;
}JQuery
Terakhir, kita tuliskan kode JQuery dengan peraturan seperti ini:
“Saat halaman telah sepenuhnya dimuat, animasikan nilai
topdari-1000pxmenjadi50px. Kemudian, saat tombol close diklik, hilangkan kotak pesan dengan efek.fadeOut()”.
<script type='text/javascript'>
$(window).bind("load", function() {
// animasikan nilai top saat halaman telah selesai dimuat
$('#kotak-pesan').animate({top:"50px"}, 1000);
// hilangkan kotak pesan saat tombol (x) diklik
$('a.close').click(function() {
$(this).parent().fadeOut();
return false;
});
});
</script>Tidak ada hal lain lagi yang bisa dituliskan setelah ini. Pada intinya, sisanya tergantung kreativitas Anda. Terutama mengenai konten apa yang akan Anda masukkan di dalam kotak pesan tersebut.
Namun di sini akan muncul sebuah masalah yang sangat umum dan seringkali diremehkan. Jika kita menciptakan kotak pesan melayang dalam sebuah situs, tentunya akan sangat mengganggu jika kotak pesan tersebut muncul setiap saat. Untuk mengatasi masalah itu, Anda bisa memanfaatkan tag kondisional untuk mengatur kemunculan kotak pesan agar hanya muncul pada halaman depan saja misalnya ยป Pelajari di sini
Label: Efek, JQuery, Menengah, Widget
Selasa, 03 Januari 2012
Dasar JSON Feeds untuk Blogger
Berikut ini adalah dasar JSON Feed untuk memanggil data posting pada situs-situs blogspot. Ini adalah langkah awal untuk mulai belajar menciptakan widget daftar isi atau recent post secara mandiri:
function showrecentposts(json) {
// start a loop
// in this loop we get the entry from the feed and parse it
for (var i = 0; i < numposts; i++) {
// get entry i from feed
var entry = json.feed.entry[i];
// get the posttitle
var posttitle = entry.title.$t;
// get the post url
// check all links for the link with rel = alternate
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;
}
}
// get the postdate, take only the first 10 characters
var postdate = entry.published.$t.substring(0,10);
// get the post author
var postauthor = entry.author[0].name.$t;
// get the postcontent
// if the Blogger-feed is set to FULL, then the content is in the content-field
// if the Blogger-feed is set to SHORT, then the content is in the summary-field
if ("content" in entry) {
var postcontent = entry.content.$t;}
else
if ("summary" in entry) {
var postcontent = entry.summary.$t;}
else var postcontent = "";
// strip off all html-tags
var re = /<\S[^>]*>/g;
postcontent = postcontent.replace(re, "");
// reduce postcontent to numchar characters
if (postcontent.length > numchars) postcontent = postcontent.substring(0,numchars);
// display the results
document.write('<br>');
document.write('Entry #' + i + '<br>');
document.write('Post title : ' + posttitle + '<br>');
document.write('Post url : ' + posturl + '<br>');
document.write('Post author : ' + postauthor + '<br>');
document.write('Postdate : ' + postdate + '<br>');
document.write('Postcontent : ' + postcontent + '<br>');
document.write('<br>');
}
}Pemanggilan
<script type='text/javascript'>
var numposts=5; // Jumlah posting
var numchars=500; // Jumlah karakter
</script>
<script src='http://nama-blogmu.blogspot.com/feeds/posts/default?alt=json-in-script&callback=showrecentposts'></script>Label: Code Snippet, JavaScript, JSON, JSON Blogger, Tingkat Lanjut, Widget
JavaScript Bubble Cursor

Tambahkan sebuah elemen halaman HTML/JavaScript, kemudian letakkan script ini di dalamnya:
<script type="text/javascript">
var colours=new Array("#F781BE", "#F781BE", "#F781BE", "#F781BE", "#F781BE"); // warna untuk border-top, border-right, border-bottom, border-left dan background gelembung
var bubbles=100; // jumlah maksmal gelembung
var x=ox=400;
var y=oy=300;
var swide=800;
var shigh=600;
var sleft=sdown=0;
var bubb=new Array();
var bubbx=new Array();
var bubby=new Array();
var bubbs=new Array();
window.onload=function() { if (document.getElementById) {
var rats, div;
for (var i=0; i<bubbles; i++) {
rats=createDiv("3px", "3px");
rats.style.visibility="hidden";
div=createDiv("auto", "auto");
rats.appendChild(div);
div=div.style;
div.top="1px";
div.left="0px";
div.bottom="1px";
div.right="0px";
div.borderLeft="1px solid "+colours[3];
div.borderRight="1px solid "+colours[1];
div=createDiv("auto", "auto");
rats.appendChild(div);
div=div.style;
div.top="0px";
div.left="1px";
div.right="1px";
div.bottom="0px"
div.borderTop="1px solid "+colours[0];
div.borderBottom="1px solid "+colours[2];
div=createDiv("auto", "auto");
rats.appendChild(div);
div=div.style;
div.left="1px";
div.right="1px";
div.bottom="1px";
div.top="1px";
div.backgroundColor=colours[4];
div.opacity=0.5;
if (document.all) div.filter="alpha(opacity=50)";
document.body.appendChild(rats);
bubb[i]=rats.style;
}
set_scroll();
set_width();
bubble();
}}
function bubble() {
var c;
if (x!=ox || y!=oy){
ox=x;
oy=y;
for (c=0; c<bubbles; c++) if (!bubby[c]) {
bubb[c].left=(bubbx[c]=x)+"px";
bubb[c].top=(bubby[c]=y)+"px";
bubb[c].width="3px";
bubb[c].height="3px"
bubb[c].visibility="visible";
bubbs[c]=3;
break;
}
}
for (c=0; c<bubbles; c++) if (bubby[c]) update_bubb(c);
setTimeout("bubble()", 40);
}
function update_bubb(i) {
if (bubby[i]) {
bubby[i]-=bubbs[i]/2+i%2;
bubbx[i]+=(i%5-2)/5;
if (bubby[i]>sdown && bubbx[i]>0) {
if (Math.random()<bubbs[i]/shigh*2 && bubbs[i]++<8) {
bubb[i].width=bubbs[i]+"px";
bubb[i].height=bubbs[i]+"px";
}
bubb[i].top=bubby[i]+"px";
bubb[i].left=bubbx[i]+"px";
}
else {
bubb[i].visibility="hidden";
bubby[i]=0;
return;
}
}
}
document.onmousemove=mouse;
function mouse(e) {
set_scroll();
y=(e)?e.pageY:event.y+sleft;
x=(e)?e.pageX:event.x+sdown;
}
window.onresize=set_width;
function set_width() {
if (document.documentElement && document.documentElement.clientWidth) {
swide=document.documentElement.clientWidth;
shigh=document.documentElement.clientHeight;
}
else if (typeof(self.innerHeight)=="number") {
swide=self.innerWidth;
shigh=self.innerHeight;
}
else if (document.body.clientWidth) {
swide=document.body.clientWidth;
shigh=document.body.clientHeight;
}
else {
swide=800;
shigh=600;
}
}
window.onscroll=set_scroll;
function set_scroll() {
if (typeof(self.pageYOffset)=="number") {
sdown=self.pageYOffset;
sleft=self.pageXOffset;
}
else if (document.body.scrollTop || document.body.scrollLeft) {
sdown=document.body.scrollTop;
sleft=document.body.scrollLeft;
}
else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
sleft=document.documentElement.scrollLeft;
sdown=document.documentElement.scrollTop;
}
else {
sdown=0;
sleft=0;
}
}
function createDiv(height, width) {
var div=document.createElement("div");
div.style.position="absolute";
div.style.height=height;
div.style.width=width;
div.style.overflow="hidden";
return (div);
}
</script>Atau kamu juga bisa meletakkannya di atas kode
</head>.Simpan Pengaturan dan lihat hasilnya:
Label: Efek, JavaScript, Widget





