Showing posts with label Tooltip. Show all posts
Showing posts with label Tooltip. Show all posts

JavaScript Image Trail Tooltip

SXC Browse Page
Halaman browse foto di SXC.

Pertama kali Saya melihat tooltip semacam ini di situs SXC. Saya mencoba untuk membuat replikanya dengan tanpa menyertakan dukungan untuk peramban-peramban lawas. document.all itu sudah sangat ketinggalan zaman!

Keistimewaan dari tooltip ini adalah dia bisa bergerak mengikuti gerakan pointer serta bisa mempertahankan posisinya agar tetap berada pada area yang terlihat di halaman agar Anda tidak mengalami masalah-masalah seperti: tooltip keluar terlalu jauh ke sebelah kanan atau ke sebelah bawah dari area terlihat pada halaman. JavaScript ini juga bisa digunakan untuk menggantikan salah satu plugin JQuery Saya yang tidak begitu terkenal dan tidak sering diperbaharui lagi:

JavaScript

/*! JavaScript Image Trail Tooltip by Taufik Nurrohman <http://gplus.to/tovic> */
(function(w, d) {

var tooltip = d.createElement('div'),
noImage = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", // 1 x 1 pixel transparent GIF
top = 0,
left = 0,
docWidth = 0,
docHeight = 0,
offsetTop = 20, // Default top distance of the tooltip to the mouse pointer
offsetLeft = 20, // Default left distance of the tooltip to the mouse pointer
wait = null;

// Get the correct width of the document without scrollbars
function getDocWidth() {
return d.documentElement.clientWidth;
}

// Get the correct height of the document
function getDocHeight() {
return Math.max(
d.body.scrollHeight, d.documentElement.scrollHeight,
d.body.offsetHeight, d.documentElement.offsetHeight,
d.body.clientHeight, d.documentElement.clientHeight
);
}

tooltip.id = "trail-image";
tooltip.className = "trail-image";
tooltip.innerHTML = '<img src="' + noImage + '" alt="Loading..." style="float:none;display:block;width:100%;height:100%;max-width:none;max-height:none;min-width:0;min-height:0;border:none;outline:none;background:none;margin:0;padding:0;">';

// Just like `DOMContentLoaded` event, but only to
// wait for the existence of the `<body>` element
// to insert the tooltip markup in the proper area
function waitForBodyExist() {
if (!d.body) {
wait = setTimeout(waitForBodyExist, 100);
} else {
clearTimeout(wait);
d.body.appendChild(tooltip);
docWidth = getDocWidth();
docHeight = getDocHeight();
w.onresize = function() {
docWidth = getDocWidth();
docHeight = getDocHeight();
};
w.onscroll = hideTrail;
}
// console.log('Still waiting...');
} waitForBodyExist();

// Function to show the tooltip
// `width` => the tooltip width
// `height` => the tooltip height
// `file` => the URL of the image to show
function showTrail(width, height, file) {
tooltip.style.visibility = "visible";
tooltip.children[0].src = file;
tooltip.style.width = parseInt(width, 10) + "px";
tooltip.style.height = parseInt(height, 10) + "px";
d.onmousemove = function(e) {
if (!e) e = w.event;
if (e.pageX || e.pageY) {
left = e.pageX;
top = e.pageY;
} else if (e.clientX || e.clientY) {
left = e.clientX + d.body.scrollLeft + d.documentElement.scrollLeft;
top = e.clientY + d.body.scrollTop + d.documentElement.scrollTop;
}
tooltip.style.top = parseInt(((top >= docHeight - (height + offsetTop + 10)) ? top - (height + offsetTop) : top + offsetTop), 10) + "px";
tooltip.style.left = parseInt(((left >= docWidth - (width + offsetLeft + 10)) ? left - (width + offsetLeft) : left + offsetLeft), 10) + "px";
};
}

// Function to hide the tooltip
function hideTrail() {
d.onmousemove = "";
tooltip.style.top = "-9999px";
tooltip.style.left = "-9999px";
tooltip.style.visibility = "hidden";
tooltip.children[0].src = noImage;
docWidth = getDocWidth();
docHeight = getDocHeight();
}

// Add to the window object as an external/global function
w.showTrail = showTrail;
w.hideTrail = hideTrail;

})(window, document);

CSS

/* Image Trail Tooltip CSS */
.trail-image {
width:0;
height:0;
background-color:#ddd;
border:1px solid #888;
position:absolute;
top:-9999px;
left:-9999px;
z-index:9999;
visibility:hidden;
-webkit-box-shadow:0 1px 1px rgba(0,0,0,.2);
-moz-box-shadow:0 1px 1px rgba(0,0,0,.2);
box-shadow:0 1px 1px rgba(0,0,0,.2);
}

Penggunaan

Dasar Penggunaan

Ada dua fungsi utama dalam skrip di atas, yaitu showTrail dan hideTrail. showTrail digunakan untuk menampilkan tooltip sedangkan hideTrail digunakan untuk menyembunyikannya. Anda bisa menerapkannya pada atribut onmouseover dan onmouseout seperti ini:

<a href="img/large.jpg">
<img onmouseover="showTrail(250, 100, &#39;img/medium.jpg&#39;);" onmouseout="hideTrail();" src="img/small.jpg" alt="">
</a>

Tentukan lebar dan tinggi gambar baru pada parameter width dan height serta URL gambar baru yang ingin ditampilkan pada parameter file:

Menyimpan Data di dalam Atribut HTML

Menuliskan fungsi berkali-kali secara inline mungkin akan melelahkan. Untuk itu Anda bisa memodifikasinya dengan cara memasukkan setiap URL gambar yang lebih besar di dalam atribut HTML5 data-*:

<img alt="" src="img/small.jpg" data-image-preview="img/medium.jpg">

Kemudian untuk penerapan fungsinya:

(function() {
var img = document.getElementsByTagName('img');
for (var i = 0, len = img.length; i < len; ++i) {
if (img[i].getAttribute('data-image-preview')) {
img[i].onmouseover = function() {
showTrail(this.offsetWidth * 3, this.offsetHeight * 3, this.getAttribute('data-image-preview'));
};
img[i].onmouseout = hideTrail;
}
}
})();

Pada kode di atas Saya menerapkan this.offsetWidth * 3 dan this.offsetHeight * 3 untuk menciptakan skala tooltip menjadi tiga kali lipat dari gambar thumbnail yang didekati pointer. Jadi anggap saja URL yang berada di dalam atribut data-image-preview memiliki ukuran sebesar tiga kali lipat dari thumbnail.

Pastikan DOM sudah berada dalam keadaan siap:

Tip untuk Gambar-Gambar dari Picasa

Kita tahu bahwa kita bisa mengubah resolusi gambar yang disimpan di Picasa dengan cara mengubah path /sN pada setiap gambar. Berikut ini adalah contoh penerapan fungsi showTrail dan hideTrail tanpa memerlukan adanya atribut data-image-preview. Sekali Anda menerapkan fungsi ini, maka semua gambar yang berasal dari Picasa dengan ukuran lebar tidak lebih dari 100 piksel akan bisa menampilkan tooltip dengan lebar gambar 400 piksel:

(function() {
var img = document.getElementsByTagName('img');
for (var i = 0, len = img.length; i < len; ++i) {
var valid = (img[i].src && /\/s[0-9]+(\-c)?\/.*?\.(bmp|gif|jpg|jpeg|png)/i.test(img[i].src) && img[i].offsetWidth <= 100);
if (valid) {
img[i].onmouseover = function() {
showTrail(this.offsetWidth * 4, this.offsetHeight * 4, this.src.replace(/\/s[0-9]+(\-c)?/, "/s400$1"));
};
img[i].onmouseout = hideTrail;
}
}
})();

Pembaharuan: Pengecekan lebar gambar yang Saya terapkan di atas terkadang tidak bekerja karena mungkin fungsi telah tereksekusi sebelum dimensi gambar terbentuk, sehingga lebar gambar akan sama dengan 0 dan itu membuatnya bisa lolos dari pengecekan. Anda bisa mengeluarkan logika img[i].offsetWidth <= 100 dan memasukkannya ke dalam event onmouseover seperti ini untuk memastikan agar pengecekan lebar gambar bisa dilakukan setelah dimensi gambar terbentuk setiap kali Anda mendekatkan pointer ke atas gambar:

var valid = (img[i].src && /\/s[0-9]+(\-c)?\/.*?\.(bmp|gif|jpg|jpeg|png)/i.test(img[i].src));
if (valid) {
img[i].onmouseover = function() {
if (this.offsetWidth <= 100) {
showTrail(this.offsetWidth * 4, this.offsetHeight * 4, this.src.replace(/\/s[0-9]+(\-c)?/, "/s400$1"));
}
};
img[i].onmouseout = hideTrail;
}

Catatan Tambahan untuk Internet Explorer

Pastikan deklarasi <!DOCTYPE html> dinyatakan pada dokumen HTML Anda agar skrip ini bisa bekerja dengan baik. Selain itu, menambahkan tag meta ini sedekat mungkin dengan <head> juga bisa mencegah Internet Explorer untuk berubah ke mode compatibility view tanpa kita kehendaki:

<meta http-equiv='X-UA-Compatible' content='IE=Edge'>

Tentang Tooltip Deskripsi pada Formulir HTML

Gambaran Tooltip pada Formulir HTML

Memaksimalkan kerja selektor adjacent sibling sangat bermanfaat untuk menciptakan komunikasi yang lebih hidup pada saat proses pengisian formulir untuk pengunjung/anggota. Idenya adalah, seorang calon anggota mencoba untuk mengisi formulir. Dan saat kursor teks aktif di dalam elemen formulir tersebut, maka akan muncul pesan singkat di sebelahnya yang menjelaskan tentang apa saja yang harus calon anggota lakukan terhadap formulir yang sedang aktif tersebut.

Ide di atas bisa kita realisasikan hanya dengan cara seperti ini:

HTML

<input type="text">
<label>Mohon ketik setiap awalan dengan huruf kapital</label>

CSS

/* Menyembunyikan label-label formulir */
label {visibility:hidden}

/* Menampilkan label formulir saat elemen input terfokus */
input:focus + label {visibility:visible}

Yang kemudian akan menghasilkan komunikasi antarmuka seperti ini:

Melakukan beberapa pembaharuan pada tampilan elemen <label> untuk membuatnya tampak sebagai tooltip serta menambahkan efek transisi untuk memperlembut proses tampilnya deskripsi/pesan formulir, maka akan membuat komunikasi antarmuka menjadi semakin tegas tanpa harus meminta pengunjung yang sedang mengisi formulir tersebut pergi menuju ke halaman khusus mengenai panduan cara mengisi formulir. Dengan cara ini, pengunjung/calon anggota akan dipandu pada saat yang sama ketika mereka sedang mengisi formulir:

HTML

<div class="form-item">
<input type="text">
<label>Descriptions...</label>
</div>

CSS

/* Form item wrapper */
.form-item {
margin:1em 0 0;
position:relative;
}

/* Form item title */
.form-item strong {
display:block;
margin:0 0 5px;
}

/* Form items */
.form-item input,
.form-item textarea {
display:block;
border:1px solid #ccc;
padding:4px;
margin:0 0;
width:250px;
font:inherit;
line-height:normal;
color:inherit;
-webkit-box-shadow:inset 0 1px 3px -1px rgba(0,0,0,.2);
-moz-box-shadow:inset 0 1px 3px -1px rgba(0,0,0,.2);
box-shadow:inset 0 1px 3px -1px rgba(0,0,0,.2);
}

/* Tooltip */
.form-item label {
display:block;
position:absolute;
bottom:100%;
left:150px;
margin-bottom:2em;
font-size:11px;
font-weight:bold;
color:white;
white-space:nowrap;
line-height:normal;
padding:.6em 1em;
background-color:black;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
visibility:hidden;
opacity:0;
/* Transition effect */
-webkit-transition:all .2s ease-out;
-moz-transition:all .2s ease-out;
-ms-transition:all .2s ease-out;
-o-transition:all .2s ease-out;
transition:all .2s ease-out;
}

/* Tooltip arrow */
.form-item label:after {
content:"";
display:block;
width:0;
height:0;
border:5px solid transparent;
position:absolute;
top:100%;
left:2em;
border-top-color:black;
}

.form-item input:focus,
.form-item textarea:focus {border-color:#aaa}

/* Show tooltip when the form is being focused */
.form-item input:focus + label,
.form-item textarea:focus + label {
visibility:visible;
opacity:1;
margin-bottom:-.5em;
}

Generator HTML Peta Gambar Palsu

Image Map

Alat ini digunakan untuk membuat image map palsu menggunakan elemen HTML. Beberapa orang lebih memilih menggunakan yang palsu karena lebih fleksibel. Pada intinya alat ini digunakan untuk mempermudah di dalam merancang ukuran dan posisi lokasi pada tiap bagian di dalam gambar. Mengenai elemen apa yang akan Anda gunakan dan bagaimana Anda memodifikasi tampilannya, itu terserah Anda:

Bagi para pembaca yang belum mengerti apa itu image map, kalian bisa memulai mempelajarinya di sini. Dan berikut ini adalah contoh gambar yang dihasilkan dari alat yang Saya buat di atas. Coba letakkan pointer mouse Anda di atas wajah-wajah atau badan tokoh kartun di bawah ini untuk mengetahui nama mereka:

Madagascar Animation Characters

Cara Menggunakan

Ambillah sebuah foto atau gambar dimana di dalamnya terdapat beberapa bagian yang memerlukan detail khusus. Misalnya foto keluarga atau peta negara, lalu unggah foto atau gambar tersebut pada blog Anda. Ambil URL gambarnya, kemudian letakkan di dalam input URL yang tersedia. Setelah itu klik tombol Create. Klik tombol Add Location untuk menambahkan lokasi/koordinat baru pada gambar. Geser dan ubah ukurannya sesuai keinginan. Kode HTML akan tampil di bagian area teks sebelah kanan.

Tooltip Kustom Otomatis untuk Semua Tautan

<script type="text/javascript">
//<![CDATA[
// Pure JavaScript Nested Tooltip Replacement for all Anchor Tag
// https://plus.google.com/108949996304093815163/about
(function() {

var a = document.getElementsByTagName('a');
var t = document.createElement('span');
t.id = "tt";
t.style.position = "absolute";
t.style.zIndex = 999;
t.style.backgroundColor = "#FFE13F";
t.style.border = "1px solid #BC5F05";
t.style.font = "bold 11px Tahoma,Arial,Sans-Serif";
t.style.boxShadow = "0 1px 3px rgba(0,0,0,0.4)";
t.style.padding = "5px 10px";
t.style.color = "#000";
t.style.maxWidth = "170px";
t.style.wordWrap = "break-word";
t.style.display = "none";
document.body.appendChild(t);
var tooltip = document.getElementById('tt');

function over(e) {
tooltip.style.display = "block";
tooltip.innerHTML = this.title;
tooltip.style.top = (e.pageY + 25) + 'px';
tooltip.style.left = e.pageX + 'px';
this.setAttribute('original', this.title);
this.title = "";

}

function out() {
tooltip.innerHTML = "";
tooltip.style.display = "none";
this.title = this.getAttribute('original');
this.removeAttribute('original');
}

for (var i = 0; i < a.length; i++) {
if (a[i].title) {
a[i].onmouseover = over;
a[i].onmouseout = out;
}
}

})();
//]]>
</script>

Salin kodenya dan letakkan di atas tag </body>

Demo

MyTooltip JQuery Plugin

MyTooltip is a very lightweight JQuery tooltip plugin see? I made ​​this just to give something simple to you who just want to beautify the default tooltip appearance.

MyTooltip JQuery Plugin

MyTooltip adalah plugin JQuery yang luar biasa ringan. Saya membuat ini sekedar untuk memberikan alternatif yang jauh lebih sederhana sebagai pengganti plugin tooltip yang lain kepada Anda yang hanya ingin mempercantik tampilan tooltip standar:

Dasar Penggunaan

Sertakan JQuery dan plugin tooltip di atas kode </head>. Untuk memodifikasi tampilan tooltip, cukup seleksi elemen yang Anda inginkan kemudian terapkan method .myTooltip() seperti ini:

<script src="js/jquery.js"></script>
<script src="js/mytooltip.js"></script>
<script>
$(document).ready(function() {
$('a').myTooltip();
});
</script>

Pengaturan Lanjutan

Hanya ada sedikit opsi lanjutan yang bisa Anda atur di sini (seperti yang Saya katakan di atas: luar biasa ringan) yaitu meliputi atribut, posisi dan efek:

$('a').myTooltip("title", {
top: 20,
left: 20,
fade: false,
time: 400
});
OpsiKeterangan
"title"Artinya bahwa tooltip akan menampilkan teks yang berasal dari atribut title pada elemen target. Sebagai contoh, jika Anda mengubah "title" menjadi "href", maka tooltip yang tampil berupa URL.
topDigunakan untuk mengatur jarak atas tooltip dari pointer.
leftDigunakan untuk mengatur jarak samping kiri tooltip dari pointer.
fadeJika bernilai true maka tooltip akan ditampilkan dengan efek animasi .fadeIn()
timeDigunakan untuk mengatur kecepatan efek .fadeIn()

Contoh Penerapan: Atribut Pengganti

Katakanlah kita tidak ingin menampilkan teks tooltip dari atribut title, maka kita bisa mengubah target atributnya seperti ini:

<img src="img/my-image.jpg" alt="This is a tooltip!">
$('img').myTooltip("alt"); // Tooltip akan menampilkan nilai atribut `alt` dari gambar

Contoh Penerapan: Modifikasi Posisi

Posisi tooltip terhadap pointer bisa dimodifikasi:

// Tooltip akan memiliki jarak atas
// sebesar 50 piksel dan jarak samping
// sebesar 70 piksel

$('a').myTooltip("title", {
top: 50,
left: 70
});

Contoh Penerapan: Mengaktifkan Efek Fade Saat Tooltip Ditampilkan

Set opsi fade menjadi true dan tentukan kecepatan animasi pada opsi time jika perlu:

$('a').myTooltip("title", {
fade: true,
time: 1000
});

Contoh Penerapan: Modifikasi Tampilan Spesifik pada Setiap Tooltip

Untuk menciptakan tampilan spesifik tentunya kita membutuhkan kelas yang spesifik juga. Di sini Saya memberikan fasilitas untuk menyisipkan kelas spesifik pada tooltip yang diinginkan dengan cara menambahkan atribut data-custom pada elemen target dengan nilai yang nantinya akan menjadi kelas baru pada tooltip:

<a href="#" data-custom="yourClass" title="This is a custom tooltip!">Example Link</a>

Kemudian atur tampilannya sesuka hati dengan cara menambahkan kode CSS khusus untuk kelas yang sudah Anda tentukan dalam atribut data-custom:

.yourClass {
background-color:red;
color:yellow;
/* Dan sebagainya... */
}

Integrasi Plugin ke Blogger

Masuk ke halaman editor HTML Template Anda:

Mengedit HTML Template
Mengedit HTML

Temukan kode ini:

]]></b:skin>

Salin kode CSS di bawah ini dan letakkan di atasnya:

.tooltip {
background-color:black;
color:white;
padding:5px 10px;
display:block;
-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);
}

Setelah itu temukan kode ini:

</head>

Salin kode ini dan letakkan di atasnya:

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script src='http://dte-project.googlecode.com/svn/trunk/myTooltip/mytooltip.min.js'></script>
<script>
//<![CDATA[
$(document).ready(function() {
$('a').myTooltip();
});
//]]>
</script>

Jika kode yang Saya beri garis bawah sudah ada di dalam templat, maka Anda tidak perlu menambahkannya lagi. Hapus skrip tersebut!

Klik Simpan Template.

Jimp - A JQuery Tooltip for Image Preview

Jimp is a lightweight JQuery tooltip plugin for image preview. Very responsive to the viewport position and easy in installation.

Jimp - A JQuery Tooltip for Image Preview

Jimp adalah plugin JQuery untuk menampilkan gambar dalam tooltip yang sangat responsif terhadap posisi layar dan mudah dalam hal instalasi. Selalu bisa menjaga posisi dirinya pada daerah yang terlihat. Mendukung URL kustom tanpa harus mengeset pengaturan plugin secara manual. Jimp akan menentukan sendiri URL mana yang akan diambil sebagai penampil gambar:

Dasar Penggunaan

Wajib menggunakan JQuery versi 1.7 atau di atasnya. Susun JQuery, Jimp dan kode CSS seperti ini. Letakkan semuanya di atas kode </head>

<link rel="stylesheet" media="screen" href="css/jimp.css" type="text/css" />
<script type="text/javascript" src="js/jquery-1.7.min.js"></script>
<script type="text/javascript" src="js/jimp.js"></script>
<script type="text/javascript">
$(function() {
$('#example a').jimp();
});
</script>

Markup HTML

Ada dua metode yang bisa Anda lakukan untuk mengaktifkan plugin ini pada elemen. Pertama, mengarahkan tautan langsung kepada URL gambar. Ke dua, mengarahkan tautan ke sebuah halaman situs, kemudian mengeset nilai tooltip dengan URL gambar yang disimpan di dalam atribut data-preview:

<a href="large-image.jpg" title="Your Title"><img src="thumbnail.jpg" alt="thumbnail" /></a>
<a href="page-url.html" data-preview="large-image.jpg" title="Your Title">This is an example link!</a>

Konfigurasi Plugin

Secara default ada beberapa opsi di dalam plugin ini yang bisa Anda sesuaikan sebagai pengaturan lanjutan:

$(function() {
$('#example a').jimp({
width: 40, // default width of the tooltip before image loaded
height: 40, // default height of the tooltip before image loaded
resizeSpeed: 200, // resize speed of container
fadeSpeed: 400, // fade speed of image
delay: 1000, // mouseenter delay before excecuting
offsetTop: 20, // tooltip offset top from pointer
offsetLeft: 20, // tooltip offset left from pointer
linkText: 'save', // save button label
closeText: '&#215', // close button label
hideOnOut: false, // if true, then when pointer mouse leave from image/link target, the tooltip will hidden and back to it's normal size
hideOnChange: false // if true, then when pointer mouse leave from image/link target (and then enter to the other target), the tooltip will hidden and back to it's normal size
});
});
OpsiKeterangan
widthDigunakan untuk menentukan lebar tooltip saat pertama kali tampil
heightDigunakan untuk menentukan tinggi tooltip saat pertama kali tampil
resizeSpeedDigunakan untuk menentukan kecepatan animasi perubahan ukuran tooltip gambar
fadeSpeedDigunakan untuk menentukan kecepatan efek fading pada gambar
delayWaktu penundaan sebelum perintah untuk menampilkan tooltip dieksekusi
offsetTopJarak atas tooltip terhadap pointer
offsetLeftJarak kiri tooltip terhadap pointer
closeTextLabel untuk tombol tutup [x]
linkTextLabel untuk tombol penyimpan gambar
hideOnOutJika true, maka tooltip akan tersembunyi ketika pointer mouse meninggalkan gambar/link target
hideOnChangeJika true, maka ketika pointer mouse meninggalkan gambar/link target dan kemudian memasuki target yang lain, tooltip akan tersembunyi dan kembali ke ukuran normal.
Jika false, tooltip akan terus tampak bersamaan dengan perpindahan target dan akan mengubah ukurannya seiring keberhasilan pointer dalam menemukan target yang baru.

Ini adalah plugin pertama Saya. Mungkin memang masih ada beberapa deklarasi kode yang tidak begitu efisien, tapi setidaknya Saya sudah bisa memastikan bahwa plugin ini bebas dari kesalahan penulisan. Saya sudah mengetesnya pada Web Console, semua peramban mayor dan validasi JavaScript di JSBin dan JSFiddle.
Untuk sementara semuanya akan Saya simpan di Google berhubung Saya belum begitu mahir soal GitHub. Situs JQuery Plugin juga saat ini masih dalam perbaikan.
Ke depannya mungkin akan muncul berbagai plugin baru yang meskipun tidak semenarik plugin-plugin yang sudah ada, tapi bisa dikatakan cukup bermanfaat untuk kalangan umum.

Modifikasi Widget AddThis

AddThis
Menambahkan tooltip pada widget AddThis

Tip sederhana untuk menambahkan tooltip pada widget berbagi AddThis. Saya iseng membuatnya beberapa menit yang lalu :p

Jika Anda adalah pengguna widget AddThis seperti Saya, pasti Anda memiliki markup yang mirip seperti ini:

<!-- AddThis Button BEGIN -->
<div class='addthis_toolbox addthis_default_style'>
<a class='addthis_button_preferred_1'></a>
<a class='addthis_button_preferred_2'></a>
<a class='addthis_button_preferred_3'></a>
<a class='addthis_button_preferred_4'></a>
<a class='addthis_button_compact'></a>
<a class='addthis_counter addthis_bubble_style'></a>
</div>
<!-- AddThis Button END -->

Tepat di dalam elemen .addthis_toolbox tambahkan elemen <span class="addthis-tooltip">Teks Anda</span> seperti ini:

<!-- AddThis Button BEGIN -->
<div class='addthis_toolbox addthis_default_style'>
<span class="addthis-tooltip">Bagikan kepada teman!</span>
<a class='addthis_button_preferred_1'></a>
<a class='addthis_button_preferred_2'></a>
<a class='addthis_button_preferred_3'></a>
<a class='addthis_button_preferred_4'></a>
<a class='addthis_button_compact'></a>
<a class='addthis_counter addthis_bubble_style'></a>
</div>
<!-- AddThis Button END -->

Sekarang masuklah ke halaman editor HTML blogmu kemudian tambahkan kode CSS ini tepat di atas kode ]]></b:skin> atau </style>:

/* Modifikasi widget AddThis */

.addthis_toolbox {
width:150px;
position:relative;
background-color:darkgreen;
padding:10px 15px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
}

.addthis_toolbox .addthis-tooltip {
display:block;
width:140px;
padding:10px 15px;
position:absolute;
bottom:100%;
left:30px;
z-index:77;
margin-bottom:40px;
background-color:black;
font:bold 12px 'Trebuchet MS',Arial,Sans-Serif;
color:white;
text-align:center;
-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);
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
opacity:0;
visibility:hidden;
-webkit-transition:all 0.26s ease-out;
-moz-transition:all 0.26s ease-out;
-ms-transition:all 0.26s ease-out;
-o-transition:all 0.26s ease-out;
transition:all 0.26s ease-out;
}

.addthis_toolbox .addthis-tooltip:before {
content:"";
width:0px;
height:0px;
border:7px solid transparent;
border-top-color:black;
position:absolute;
top:100%;
left:15px;
}

.addthis_toolbox:hover .addthis-tooltip {
visibility:visible;
opacity:1;
margin-bottom:20px;
}

/* Akhir modifikasi widget AddThis */

Klik Simpan template.

Menciptakan Navigasi Mini Bergaya Nettuts+

Tuts+ Navigation
http://tutsplus.com

Saat Anda mengunjungi situs Nettuts+, atau Tuts+ pasti Anda akan melihat sebuah menu melayang kecil di sebelah kiri layar. Kali ini Saya akan membuat versi yang mirip dengan itu. Pada dasarnya, cara kerjanya masih sama dengan JQuery Tooltip onClick, yaitu pada saat suatu elemen diklik, maka elemen tertentu yang telah ditentukan sebagai target akan tampil. Untuk menciptakan sedikit perbedaan, Saya telah menambahkan elemen tooltip dengan konten yang diproduksi dari teks di dalam menu:

$('#sidenav li a.main').hover(function() {
$(this).append('<span class="ttp">' + $(this).text() + '<em></em></span>');
$('span.ttp', this).stop().animate({marginLeft:7, opacity:"show"}, 200);
}, function() {
$('span.ttp', this).stop().animate({marginLeft:10, opacity:"hide"}, 100, function() {
$(this).remove();
});
});
});
Menciptakan Navigasi Mini Bergaya Nettuts+

Kerangka Navigasi

Kerangka navigasi terdiri dari elemen biasa yaitu <nav>, <ul> dan <li>:

<nav id='sidenav'>
<ul>
<li><a class='main home' href='/'>Home</a></li>
<li><a class='main about' href='#'>About</a>
<ul class='fallback'>
<li><a class='social blogger' href='#'>Me on Blogger</a></li>
<li><a class='social facebook' href='#'>Me on Facebook</a></li>
<li><a class='social twitter' href='#'>Me on Twitter</a></li>
<li><a class='social googleplus' href='#'>Me on Google+</a></li>
</ul>
</li>
<li><a class='main archive' href='#'>Archives</a>
<ul class='fallback'>
<li><a href='#'>Table of Contents</a></li>
<li><a href='#'>Recent Articles</a></li>
<li><a href='#'>Recent Comments</a></li>
</ul>
</li>
<li><a class='main share' href='#'>Share</a>
<ul class='fallback'>
<li><a class='social blogger' href='#'>Blogger</a></li>
<li><a class='social facebook' href='#'>Facebook</a></li>
<li><a class='social twitter' href='#'>Twitter</a></li>
<li><a class='social googleplus' href='#'>Google+</a></li>
<li><a class='social flickr' href='#'>Flickr</a></li>
<li><a class='social rss' href='#'>RSS</a></li>
<li><a class='social mail' href='#'>Mail</a></li>
</ul>
</li>
<li><a class='main photos' href='#'>Screencast</a></li>
<li><a class='main contact' href='#'>Contact</a>
<ul class='fallback' style='font-weight:bold;'>
<li><a class='social facebook' href='#'>Facebook</a></li>
<li><a class='social twitter' href='#'>Twitter</a></li>
<li><a class='social mail' href='#'>Mail</a></li>
</ul>
</li>
</ul>
</nav>

CSS

Kode CSS tidak begitu rumit, di sini Saya hanya menekankan kepada konsep CSS Sprites:

/*!
* Mini floating Navigation by Taufik Nurrohman
* Visit: http://gplus.to/tovic
*/

#sidenav {
position:fixed !important;
position:absolute; /* IE6 Fallback */
top:60px;
left:0px;
z-index:999;
background-color:#eee;
border:1px solid #ccc;
width:auto;
height:auto;
text-indent:-99999px;
font:normal 12px Arial,Sans-Serif !important;
-webkit-box-shadow:0px 1px 7px -3px rgba(0,0,0,0.4);
-moz-box-shadow:0px 1px 7px -3px rgba(0,0,0,0.4);
box-shadow:0px 1px 7px -3px rgba(0,0,0,0.4);
}

#sidenav ul {
margin:0px 0px;
padding:0px 0px;
}

#sidenav li {
margin:0px 0px;
padding:0px 0px;
list-style:none;
display:block;
position:relative;
}

#sidenav a {
display:block;
width:20px;
border-bottom:1px solid #ccc;
color:#666;
text-decoration:none;
-webkit-box-shadow:inset 0px 0px 0px 1px white;
-moz-box-shadow:inset 0px 0px 0px 1px white;
box-shadow:inset 0px 0px 0px 1px white;
}

#sidenav li:last-child a {
border-bottom:none;
}

#sidenav span.ttp {
display:block;
position:absolute;
top:0px;
font:normal 94% Arial,Sans-Serif;
background-color:#39f;
color:white;
padding:0px 10px;
line-height:22px;
height:22px;
width:auto;
left:100%;
z-index:77;
margin-left:17px;
text-indent:0px;
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
display:none;
}

#sidenav span.ttp em {
display:block;
width:0px;
height:0px;
border:4px solid transparent;
border-right-color:#39f;
position:absolute;
top:7px;
right:100%;
}

#sidenav li ul {
width:150px;
height:auto;
background:transparent;
border:none;
position:absolute;
top:-1px;
left:100%;
-webkit-box-shadow:0px 1px 7px -3px rgba(0,0,0,0.4);
-moz-box-shadow:0px 1px 7px -3px rgba(0,0,0,0.4);
box-shadow:0px 1px 7px -3px rgba(0,0,0,0.4);
display:none;
}

#sidenav li ul a {
border:1px solid #ccc;
border-bottom:none;
background-color:#eee;
display:block;
width:auto;
padding:0px 10px;
line-height:25px;
text-indent:0px;
-webkit-box-shadow:inset 0px 0px 0px 1px white;
-moz-box-shadow:inset 0px 0px 0px 1px white;
box-shadow:inset 0px 0px 0px 1px white;
}

#sidenav li a:hover {background-color:#ddd;}

#sidenav li ul li:last-child a {
border-bottom:1px solid #ccc;
}

/* CSS Sprites */
#sidenav a.main {
background-image:url('main-sprites.png');
background-repeat:no-repeat;
width:26px;
height:25px;
}

#sidenav a.home {background-position:5px 4px; }
#sidenav a.about {background-position:5px -22px; }
#sidenav a.archive {background-position:5px -48px; }
#sidenav a.share {background-position:5px -73px; }
#sidenav a.photos {background-position:5px -100px;}
#sidenav a.contact {background-position:5px -126px;}

#sidenav li ul a.social {
background-image:url('social-sprites.png');
background-repeat:no-repeat;
padding-left:30px !important;
}

#sidenav li ul a.blogger {background-position:5px 4px; }
#sidenav li ul a.facebook {background-position:5px -21px; }
#sidenav li ul a.twitter {background-position:5px -47px; }
#sidenav li ul a.googleplus {background-position:5px -73px; }
#sidenav li ul a.flickr {background-position:5px -99px; }
#sidenav li ul a.rss {background-position:5px -125px;}
#sidenav li ul a.mail {background-position:5px -151px;}

/* CSS Fallback */
#sidenav li:hover .fallback {display:block;}

JQuery

Dan… sedikit kode JQuery yang merupakan pengembangan dari JQuery Tooltip onClick. Kodenya memang tampak banyak, tapi yang banyak itu pada dasarnya hanya deskripsi cara kerjanya saja:

$(function() {

// Menonaktifkan fallback CSS (Saya akan membahas ini suatu saat nanti)
$('#sidenav .fallback').removeClass('fallback');

// Menampilkan dan menyembunyikan tooltip
$('#sidenav li a.main').hover(function() {
$(this).append('<span class="ttp">' + $(this).text() + '<em></em></span>');
$('span.ttp', this).stop().animate({marginLeft:7, opacity:"show"}, 200);
}, function() {
$('span.ttp', this).stop().animate({marginLeft:10, opacity:"hide"}, 100, function() {
$(this).remove();
});
});

// Saat elemen <a> diklik...
$('#sidenav li a[href="#"]').click(function(e) {
// Hilangkan semua anak <ul> dan tooltip yang tampil
$('#sidenav li ul:visible, span.ttp:visible').hide();
// Tampilkan elemen setelahnya (dalam hal ini adalah elemen <ul>)
// dengan efek .show('fast') dan set nilai margin-left menjadi 10 piksel untuk menciptakan jarak
$(this).next().css('margin-left', '10px').show('fast');
// Jangan biarkan event .click() pada elemen ini mempengaruhi elemen lain di dalam dokumen
// Selengkapnya: http://api.jquery.com/event.stopPropagation/
e.stopPropagation();
return false;
});

// Hilangkan semua anak elemen <ul> dan tooltip yang tampil saat elemen selain menu diklik
$(document).click(function() {
$('#sidenav li ul:visible, span.ttp:visible').hide();
});

});

Intinya adalah, saat sebuah menu diklik, maka anak menu di dalamnya akan tampil, sedangkan elemen sejenis lain yang sedang tampil akan menghilang, termasuk tooltip menu itu sendiri:

// Saat elemen <a> diklik...
$('#sidenav li a[href="#"]').click(function(e) {
// Hilangkan semua anak <ul> dan tooltip yang tampil
$('#sidenav li ul:visible, span.ttp:visible').hide();
// Tampilkan elemen setelahnya (dalam hal ini adalah elemen <ul>)
// dengan efek .show('fast') dan set nilai margin-left menjadi 10 piksel untuk menciptakan jarak
$(this).next().css('margin-left', '10px').show('fast');
// Jangan biarkan event .click() pada elemen ini mempengaruhi elemen lain di dalam dokumen
// Selengkapnya: http://api.jquery.com/event.stopPropagation/
e.stopPropagation();
return false;
});

Widget Posting Terbaru/Recent Post dengan Gambar Thumbnail dan Tooltip

Recent Post Widget with Mini Thumbnail and Tooltip

Widget recent post dengan gambar mini mungkin sudah biasa Anda temukan. Tapi mungkin Anda mau mencoba yang satu ini. Widget recent post dengan thumbnail dan tooltip:

Untuk membuatnya, pertama-tama masuk ke halaman tata letak dengan mengeklik menu Tata Letak:

Tata letak Blogger
Masuk ke halaman Tata Letak

Tambahkan sebuah elemen halaman HTML/JavaScript, kemudian salin semua kode ini dan letakkan di dalam formulirnya:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<style scoped="scoped">
#mini-gallery {
width:380px; /* Tentukan lebar yang tepat sesuka hati atau buang saja deklarasi ini */
margin:0 auto;
font:normal normal 11px/normal Verdana,Arial,Sans-Serif;
color:#666;
padding:8px;
background-color:#222;
-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);
-webkit-border-radius:4px;
-moz-border-radius:4px;
border-radius:4px;
}

#mini-gallery h2 {
font:normal normal 14px/normal Impact,"Arial Narrow",Arial,Sans-Serif;
color:#999;
text-shadow:0 1px 0 black;
text-transform:uppercase;
margin:2px;
padding:7px 14px;
background-color:#3c3c3c;
}

#mini-gallery .rp-item {
float:left;
display:inline;
position:relative;
margin:2px;
padding:0;
background:white url('data:image/gif;base64,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') no-repeat 50% 50%;
width:72px;
height:72px;
}

#mini-gallery .rp-item img {
width:72px;
height:72px;
border:none !important;
margin:0 !important;
padding:0 !important;
background:none !important;
display:none;
}

#mini-gallery .rp-item .rp-child {
position:absolute;
top:95%;
left:95%;
z-index:1000;
width:200px;
background-color:white;
border-top:4px solid #3399ff;
-webkit-box-shadow:0 0 3px rgba(0,0,0,.7);
-moz-box-shadow:0 0 3px rgba(0,0,0,.7);
box-shadow:0 0 3px rgba(0,0,0,.7);
padding:10px 15px;
overflow:hidden;
word-wrap:break-word;
display:none;
}

#mini-gallery .rp-item .rp-child h4 {
font-size:12px;
margin:0 0 5px;
color:#2473A8;
}

#mini-gallery .rp-item:hover .hidden {display:block}
</style>
<script>
var widgetTitle = "Artikel Terbaru", // Tentukan judul widget
numPosts = 20, // Tentukan jumlah thumbnail/posting
numChars = 300, // Tentukan jumlah karakter pada deskripsi tooltip
tooltipFadeSpeed = 200, // Tentukan kecepatan efek .fadeIn() saat tooltip tampil
pictureBlank = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAA3NCSVQICAjb4U/gAAAADElEQVQImWOor68HAAL+AX7vOF2TAAAAAElFTkSuQmCC", // Thumbnail cadangan jika posting yang tampil tidak memiliki gambar
blogUrl = "http://nama_blog.blogspot.com"; // Alamat blogmu
</script>
<script src="http://dte-project.googlecode.com/svn/trunk/rp-mini-gallery.js"></script>

Ganti URL http://nama_blog.blogspot.com dengan alamat blog Anda. Tentukan judul widget pada variabel widgetTitle, tentukan jumlah posting yang ditampilkan (gambar mini) pada variabel numPosts, tentukan juga jumlah karakter/ringkasan artikel yang akan muncul pada variabel numChars.

Kode yang Saya beri garis bawah adalah JQuery. Jika templat Anda sudah dilengkapi dengan JQuery, buang kode itu dari widget.

Klik Simpan dan lihat hasilnya.

JQuery Tooltip onClick

Pada umumnya tooltip akan tampil saat pointer mouse menyentuh sebaris teks yang mengandung tooltip. Tapi bagaimana jika kita ingin menampilkan tooltip dengan cara diklik?

Windows Help and Support
Windows Help and Support

Terinspirasi dari model tooltip definisi yang umum dijumpai pada fasilitas Windows Help and Support, Saya membuat tooltip ini untuk melengkapi koleksi artikel di sini. Tooltip ini tidak akan tampil saat teks tertentu disentuh, melainkan hanya akan tampil saat teks tersebut diklik. Ini sangat efektif untuk menampilkan definisi dari istilah tertentu dengan cepat tanpa harus mengarahkan pembaca menuju halaman lain seperti Wikipedia (misalnya).
Saya pernah melihat tooltip semacam ini pada sebuah situs referensi HTML5. Tapi Saya lupa alamatnya. Ada yang tahu?

Untuk pengguna Blogger, proses instalasi bisa dilakukan dengan cara mengikuti langkah-langkah berikut ini:

Hancurkan Template

Pertama-tama pastikan bahwa template Anda sudah dilengkapi dengan JQuery (ambil scriptnya di sini dan abaikan script JQuery easing 1.3. Kita tidak membutuhkan itu).
Masuk ke halaman editor HTML template, kemudian temukan kode ini:

</head>

Salin kode di bawah ini dan letakkan di atasnya:

<script type='text/javascript'>
//<![CDATA[
$(function() {

$('abbr').css('cursor', 'pointer').hover(function() {

// Saya menukar nilai di dalam atribut title untuk dimasukkan ke dalam atribut data-title
// dan menyingkirkan atribut title dari <abbr>
// sehingga nilai tooltip asli dari browser tidak akan tampil saat Anda menyentuh elemen <abbr>
$(this).attr('data-title', $(this).attr('title')).removeAttr('title');

}, function() {

// Namun saat pointer menjauhi elemen ini, Saya harus mengembalikan nilai awal dari atribut title dan menghilangkan atribut data-title
// Ini adalah proses bergantian untuk memastikan agar tampilan <abbr> tidak terganggu dengan
// munculnya tooltip panjang yang berasal dari atribut title saat didekati pointer mouse.
$(this).attr('title', $(this).attr('data-title')).removeAttr('data-title');

// Saat elemen <abbr> diklik...
}).click(function(e) {

// Hilangkan semua elemen #tooltip-click yang ada
$('#tooltip-click').remove();

// Kemudian sisipkan elemen #tooltip-click baru pada elemen ini (elemen <abbr> yang diklik)
$('abbr.underlined').removeClass('underlined');
$(this).addClass('underlined').append('<div id="tooltip-click"></div>');


// Pastikan tooltip selalu muncul pada area yang terlihat!

var ttWidth = $('#tooltip-click').outerWidth(), // Mengambil data lebar tooltip
ttHeight = $('#tooltip-click').outerHeight(), // Mengambil data tinggi tooltip

// Mengambil data lebar layar dan tinggi dokumen
winWidth = $(window).width(),
docHeight = $(document).height(),

top = e.pageY + 15, // Set nilai top sebesar koordinat pointer dari batas atas jendela + 15
left = e.pageX; // Set nilai left sebesar koordinat pointer dari batas kiri layar browser

// Jika top + tinggi tooltip lebih besar dari tinggi dokumen...
if(top + ttHeight > docHeight) {
// Set nilai top sebesar top - tinggi tooltip - 15
top = top - ttHeight - 15;
} else {
// Jika tidak, set nilai top sebagai top yang nilainya telah dinyatakan sebelum ini
top = top;
}

// Jika left + lebar tooltip lebih besar dari lebar layar...
if(left + ttWidth > winWidth) {
// Set nilai left sebesar left - lebar tooltip - 15
left = left - ttWidth - 15;
} else {
// Jika tidak, set nilai left sebagai left yang nilainya telah dinyatakan sebelum ini
left = left;
}

// Isi elemen #tooltip-click dengan deskripsi yang ada di dalam atribut data-title
// kemudian tampilkan tooltip dengan efek .show()
$('#tooltip-click').html($(this).attr('data-title')).css({top:top,left:left}).show(200);

// Jangan biarkan event .click() pada fungsi ini meluap keluar dari DOM tree
// Event ini khusus untuk mempengaruhi elemen ini saja
// Selengkapnya: http://api.jquery.com/event.stopPropagation/
e.stopPropagation();
});

// Jika seluruh dokumen (katakanlah: sesuatu selain <abbr>) diklik...
$(document).click(function() {
// Hilangkan elemen #tooltip-click
$('#tooltip-click').remove();
$('abbr.underlined').removeClass('underlined');
});

});
//]]>
</script>

Berikutnya temukan kode ]]></b:skin> atau </style>, lalu salin kode ini dan letakkan di atasnya:

/**
* JQuery Tooltip Click by Taufik Nurrohman
* Visit: http://hompimpaalaihumgambreng.blogspot.com
*/

#tooltip-click {
width:300px;
position:absolute;
top:10px;
left:10px;
z-index:999;
background-color:#D6E3AF;
border:1px solid #869B48;
-webkit-box-shadow:2px 2px 0px rgba(0,0,0,0.1);
-moz-box-shadow:2px 2px 0px rgba(0,0,0,0.1);
box-shadow:2px 2px 0px rgba(0,0,0,0.1);
padding:10px 15px;
font:normal 11px/16px Arial,Sans-Serif;
color:black;
text-align:left;
display:none;
}

#tooltip-click h2 {
margin:0px 0px 10px;
font-size:18px;
}

abbr.underlined {border-bottom:1px solid #0C3CC1;}

Klik Simpan Template. Sekarang tinggal tahap aktivasi.

Aktivasi

Sama seperti JQuery Toolpik, Saya menargetkan tooltip dari elemen <abbr>. Jadi, untuk mencantumkan tooltip pada teks tertentu di dalam posting/artikel blog cukup dengan cara membungkus teks yang Anda inginkan dengan elemen <abbr> kemudian beri atribut title dengan nilai yang Anda kehendaki:

Lorem ipsum dolor sit amet, <abbr title="Isi tooltip di sini">consectetuer inside abbr</abbr> adipiscing elit. Lorem ipsum dolor sit amet, <abbr title="Isi tooltip di sini">consectetuer inside abbr</abbr> adipiscing elit.
Lorem ipsum dolor sit amet, <abbr title="Isi tooltip di sini">consectetuer inside abbr</abbr> adipiscing elit. Lorem ipsum dolor sit amet, <abbr title="Isi tooltip di sini">consectetuer inside abbr</abbr> adipiscing elit.

JQuery .attr() dan .removeAttr()

JQuery .attr() dan .removeAttr()

.attr() digunakan untuk menyisipkan/mengubah atribut pada elemen target.

.removeAttr() digunakan untuk menghilangkan atribut pada elemen target.


Dasar Penggunaan

Kode di bawah ini akan menambahkan atribut title dengan nilai Taufik Nurrohman pada elemen berupa gambar jika gambar tersebut tidak memiliki atribut title. Jika gambar tersebut sudah memiliki atribut title dengan nilai tertentu, maka kode ini bertugas untuk mengubah nilai atribut title gambar menjadi Taufik Nurrohman:

$('img').attr('title', 'Taufik Nurrohman');

Kode di bawah ini akan mengambil data berupa nilai atribut alt dari gambar untuk dimasukkan ke dalam variabel judul:

var judul = $('img').attr('alt');

Kode di bawah ini akan menghapus atribut title pada elemen berupa gambar:

$('img').removeAttr('title');

Contoh Penerapan: Menambah dan Menghapus Atribut pada Elemen

HTML

<div id='area'></div>

<div id='button-wrapper'>
<button class='add'>Tambahkan Atribut TITLE</button>
<button class='remove' style='display:none;'>Hilangkan Atribut TITLE</button>
</div>

CSS

#area {
width:200px;
height:300px;
background-color:#ffa500;
border:2px solid #fff;
-webkit-box-shadow:0px 1px 3px rgba(0,0,0,0.4);
-moz-box-shadow:0px 1px 3px rgba(0,0,0,0.4);
box-shadow:0px 1px 3px rgba(0,0,0,0.4);
cursor:pointer;
}

JQuery

$(function() {
$('button.add').click(function() {
// Tambahkan atribut title dengan nilai "Tooltip telah ditambah"
$('#area').attr('title', 'Tooltip telah ditambah');
$(this).hide();$('button.remove').show();
});

$('button.remove').click(function() {
// Hilangkan atribut title pada #area
$('#area').removeAttr('title');
$(this).hide();$('button.add').show();
});
});

Memanipulasi Beberapa Atribut Sekaligus

Mengubah beberapa atribut melalui satu .attr() dapat dilakukan seperti ini:

$('a').attr({
'href':'#',
'title':'Blank Links'
});

Pandangan Lebih Jauh

Anda bisa menggabungkan fungsi ini dengan JQuery .html() dan .text() untuk menciptakan aplikasi sederhana sebagai alternatif untuk menunjukkan nilai lebar, tinggi, judul, atau apapun yang berasal dari nilai atribut pada gambar dengan cepat:

HTML

<img src='gambar1.jpg' alt='Anime' title='Keroro Gunso' width='300' height='200' />
<img src='gambar2.jpg' alt='Anime' title='Gundam Seed' width='700' height='400' />
<img src='gambar3.jpg' alt='Anime' title='Naruto Shippuden' width='1024' height='600' />
<div style='clear:both;'></div>

<div id='toolpik'>
<h3 class='imgTitle'></h3>
<div class='thumbnail'></div>
<table border='0'>
<tr><td class='bold'>Width:</td><td class='imgWidth'></td></tr>
<tr><td class='bold'>Height:</td><td class='imgHeight'></td></tr>
<tr><td class='bold'>URL:</td><td class='imgUrl'></td></tr>
<tr><td class='bold'>Alt:</td><td class='imgAlt'></td></tr>
</table>
</div>

CSS

img {
float:left;
border:2px solid #333;
}

#toolpik {
position:fixed;
top:10px;
left:10px;
z-index:10;
height:auto;
background:#eee2e2;
border:7px solid #cec2c2;
padding:0px;
font:normal 12px Arial,Sans-Serif;
-webkit-box-shadow:0px 1px 3px rgba(0,0,0,0.7);
-moz-box-shadow:0px 1px 3px rgba(0,0,0,0.7);
box-shadow:0px 1px 3px rgba(0,0,0,0.7);
display:none;
}

#toolpik h3 {margin:10px;}

#toolpik img {
max-width:220px !important;
height:auto !important;
border:none;
display:block;
margin:0px auto 10px;
}

#toolpik table {
width:250px;
background:#ded2d2;
border:none !important;
padding:10px;
}

#toolpik table tr, #toolpik table th {
border:none !important;
background:transparent !important;
}

#toolpik table td {
padding:5px;
border:none !important;
}

#toolpik table td.bold {
font-weight:bold;
width:100px;
}

JQuery

$(document).ready(function() {
$('img').hover(function() {

var title = $(this).attr('title'), //mengambil data dari atribut title
width = $(this).attr('width'), //mengambil data dari atribut width
height = $(this).attr('height'), //mengambil data dari atribut height
src = $(this).attr('src'), //mengambil data dari atribut src
alt = $(this).attr('alt'); //mengambil data dari atribut alt

$('#toolpik').stop(true, true).fadeIn(); //menampilkan #toolpik pada saat gambar disentuh dengan efek fadeIn

//menyisipkan thumbnail gambar dengan URL gambar yang sama dengan gambar yang disentuh pada elemen <div class='thumbnail'>
$('#toolpik .thumbnail').html('<img alt="thumbnail" src="' + src + '" />');

//menyisipkan judul dengan teks yang sama dengan nilai atribut title gambar pada elemen <h3 class='imgTitle'>
$('#toolpik h3.imgTitle').text(title);

//menyisipkan width dengan teks yang sama dengan nilai atribut width gambar pada elemen <td class='imgWidth'>
$('#toolpik td.imgWidth').text(width);

//menyisipkan height dengan teks yang sama dengan nilai atribut height gambar pada elemen <td class='imgHeight'>
$('#toolpik td.imgHeight').text(height);

//menyisipkan URL gambar dan mengubahnya menjadi sebuah link dengan nilai href dan label yang sama dengan nilai atribut src gambar pada elemen <td class='imgUrl'>
$('#toolpik td.imgUrl').html('<a href="' + src + '">' + src + '</a>');

//menyisipkan alt dengan teks yang sama dengan nilai atribut alt gambar pada elemen <td class='imgAlt'>
$('#toolpik td.imgAlt').text(alt);

}, function() {

//menghilangkan #toolpik saat pointer keluar dari gambar dengan efek fadeOut
$('#toolpik').stop(true, true).fadeOut();

}).mousemove(function(e) {

//membuat posisi #toolpik melayang mengikuti pointer mouse
$('#toolpik').css({top:e.clientY - 100, left:e.clientX + 40});

});
});
JQuery untuk Membuat Aplikasi
Kreatif dengan JQuery

Toolpik - A JQuery Tooltip by Taufik Nurrohman

Hey kid, it seems you have entered the deprecated page. To see the updated version of this page, go to here

JQuery Tooltip

Toolpik is a JQuery tooltip for manipulating the nested tooltip from the browser. Prioritized for <acronym> tag. This is a simple way to change your perspective about the articles. With Toolpik, you can display a beautiful description of the article. Let's take a look:


How to Use

Toolpik has a simple way to activate. Simply just install the JQuery and JQuery Easing 1.3, then add the Toolpik scripts below:

<script type='text/javascript' src='jquery-1.6.2.min.js'></script>
<script type='text/javascript' src='jquery-easing-1.3.pack.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('acronym, abbr').hover(function(e) {
var tip = $(this).attr('title'); //Grab the title attribute's value and assign it to a variable
var imgh = 'ikon1.png'; //Call the image by variable to reduce load time (not important)
$(this).attr('title', ''); //Remove the title attribute's to avoid the native tooltip from the browser

//Change the default cursor to "help" when hovered and append the tooltip element and its value
$(this).css('cursor', 'help').append('<div id="toolpik"><div id="nurrohman">' + tip + '</div><img alt="Absolute" class="absol" src="' + imgh + '" /><div style="clear: both;" /></div>');

$('#toolpik').stop(true, true).delay(600).fadeIn(1000, "easeOutQuad"); //Show with fadeIn effect

//Animate the top and left position follow the mouse pointer position
$('#toolpik').delay(600).animate({top: e.clientY - 50, left: e.clientX - 170}, {duration:2000, easing:"easeOutBack"}).animate({top:e.clientY - 20}, 400);
}, function(e) {
var bringBack = $('#toolpik').html(); //Put back the title attribute's value
$(this).attr('title',bringBack);
$('#toolpik').remove(); //Remove the appended toolpik
});
});
</script>

Activation

Toolpik will find the value of title attribute and convert it to text in Toolpik. Simply wrap the text that you want and add the title attribute with the specified value and it will be a description in Toolpik:

Lorem ipsum <acronym title="I'm a Toolpik">I have a Toolpik</acronym>. Dolor silit pitik.

However, if you are not familiar using <acronym> or <abbr> as a marker, you can use another tags such as <a>.
To enable <a> as Toolpik, replace the selector $('acronym, abbr') in JQuery to $('a[title]').
You can also insert HTML code into the title attribute to get various content. For safety reasons, just make sure that if you use double quotation symbol on the title attribute, you must use single quotes in tag attributes inside.
And for more secure, parse all the code < with &lt; and > with &gt;

Lorem ipsum <acronym title="<h2 class='single-quotes'>I'm a Header</h2>I'm a Toolpik">I have a Toolpik</acronym>. Dolor silit pitik.
Lorem ipsum <abbr title="<h2 class='single-quotes'>I'm a Header</h2>I'm a Toolpik">I have a Toolpik</abbr>. Dolor silit pitik.

Or..

Lorem ipsum <acronym title="&lt;h2 class='single-quotes'&gt;I'm a Header&lt;/h2&gt;I'm a Toolpik">I have a Toolpik</acronym>. Dolor silit pitik.
Lorem ipsum <abbr title="&lt;h2 class='single-quotes'&gt;I'm a Header&lt;/h2&gt;I'm a Toolpik">I have a Toolpik</abbr>. Dolor silit pitik.

Membuat Tooltip dengan CSS Pseudo-Element

CSS Tooltip
Tooltip dengan CSS3

Toooltip. Secara umum dapat dibuat dengan cara menyisipkan atribut title='' pada elemen seperti ini:

<a href='http://latitudu.blogspot.com' title='Saya adalah tooltip'>Saya memiliki tooltip</a>

Namun di sini Saya hanya ingin memberikan pengetahuan bahwa tooltip juga sebenarnya dapat diperbaiki tampilannya hanya dengan bermodalkan CSS Pseudo-Element:

Berikut ini adalah kode CSS untuk memproduksi tooltip dari atribut title:

*[title]:before {
content:attr(title);
position:absolute;
z-index:10;
width:auto;
bottom:100%;
left:0;
margin-bottom:3px;
background:#000;
color:#fff;
font-size:11px;
font-weight:normal;
text-shadow:none;
padding:4px 10px 5px;
opacity:0.8;
filter:alpha(opacity=80);
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
display:none;
}

*[title]:hover {position:relative;}

*[title]:hover:before {
display:block;
}

Selektor *[title]:before akan menyeleksi semua elemen yang mengandung atribut title='' di dalamnya, kemudian akan menyisipkan sebuah elemen palsu yang berisikan nilai dari atribut title='' tersebut (dalam hal ini, kode yang dimaksud adalah content:attr(title)). Namun, deklarasi display:none; akan menyembunyikan wujud elemen palsu tersebut, hingga pada akhirnya pointer diletakkan di atas elemen yang mengandung atribut title='' tersebut, barulah elemen palsu akan ditampilkan (display:block;).

Untuk tingkatan lebih lanjut, CSS ini sebenarnya juga bisa digunakan untuk menampilkan isi dari atribut lain, misalnya href=''. Caranya cukup dengan mengganti semua selektor atribut title dan nilai content dengan href seperti ini:

*[href]:before {
content:attr(href);
position:absolute;
z-index:10;
width:auto;
bottom:100%;
left:0;
margin-bottom:3px;
background:#000;
color:#fff;
font-size:11px;
font-weight:normal;
text-shadow:none;
padding:4px 10px 5px;
opacity:0.8;
filter:alpha(opacity=80);
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
display:none;
}

*[href]:hover {position:relative;}

*[href]:hover:before {
display:block;
}

Jika kode di atas yang diterapkan, maka tooltip yang ditampilkan adalah berupa alamat URL. Ini jika kamu menghendaki alamat URL yang dimunculkan sebagai tooltip, bukannya nilai dari atribut title='' seperti pada umumnya.

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Homtimpa - All Rights Reserved
Template Modify by Creating Website
Proudly powered by Blogger