Cara Memasang Widget "Pencarian Text" di Blog. - Info Desain Web Terbaru!
Info Desain Web Terbaru!
4 Kang Rian 5/01/2014 12:56:00 PM Cara Memasang Widget "Pencarian Text" di Blog. Cara Memasang Widget "Pencarian Text" di Blog.

Cara Memasang Widget "Pencarian Text" di Blog.

Oleh. Kang Rian  •  22  •      Edit
Cara Memasang Widget "Pencarian Text" di Blog.
Cara Memasang Widget "Pencarian Text" di Blog.
Find Text Icon PngAlhamdulillah, hari ini saya masih diberi kesempatan untuk berbagi lagi. Tutorial yang akan saya bagikan kali ini yaitu sebuah widget berbentuk form pencarian khusus pada sebuah halaman yang memiliki tulisan yang banyak. Fungsi dari pada widget ini sama dengan tool "Find Text" pada browser dengan menggunakan shortcut CTRL + F pada keyboard. Namun kali ini kita akan membuat widget-nya dengan menggunakan bumbu HTML, CSS, & Jquery/Javascript.

Untuk Demo nya silahkan coba ketikan "Blog" pada form Pencarian Text di bawah ini :

Cara Pemasangan:

1. Pastikan sobat sudah memasang jQuery Library! jika sobat belum memasang jQuery Library, silahkan simpan kode di bawah ini tepat di atas tag </head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"/>
Catatan Penting! : Pemasangan jQuery dalam Blog hanya boleh 1x saja, jika lebih dari 1 maka Efek-efek yang mengandalkan fungsi jQuery tidak akan berfungsi.

2. Jika jQuery Library sudah terpasang, silahkan simpan kode CSS dibawah ini tepat sebelum tag </head> ( Silahkan Kreasikan Sendiri ).
<style>
/* CSS - Widget Find Text on this page! */
.kr-text-finder {
position:relative;
background-color:#f2f2f2;
border:5px solid #f2f2f2;
-webkit-box-shadow:0px 4px 0px #ccc;
-moz-box-shadow:0px 4px 0px #ccc;
-ms-box-shadow:0px 4px 0px #ccc;
-o-box-shadow:0px 4px 0px #ccc;
box-shadow:0px 4px 0px #ccc;
-webkit-border-radius:5px;
-moz-border-radius:5px;
-ms-border-radius:5px;
-o-border-radius:5px;
border-radius:5px;
padding:5px 6px;
}
/* Highlighter Style */
.kr-highlight {
background-color:yellow;
font-weight:bold;
}
/* Input Style */
input.find-form {border:1px solid #ccc;padding:3px;outline:0px;width:200px;}
input.find-form:focus { border:1px solid #ccc;box-shadow:0px 0px 3px 5px #fafafa; background:#444;color:#fff; }
/* kr-button */
.kr-button { display:inline-block; text-decoration:none; outline:none; padding:6px 11px; font:normal 11px/1em "Lucida Grande", Verdana, Arial, "Bitstream Vera Sans", sans-serif; color:#464646; background:#fff; background:-webkit-gradient(linear, left top, left bottom, from(#fff), to(#f1f1f1)); background:-moz-linear-gradient(top, #fff, #f1f1f1); border:1px solid #bbb; -webkit-border-radius:11px; -moz-border-radius:11px; border-radius:11px;}
.kr-button:hover,
.kr-button:focus { color:#000; border-color:#666;}
.kr-button:active { background:#eee; background:-webkit-gradient(linear, left top, left bottom, from(#ededed), to(#fbfbfb)); background:-moz-linear-gradient(top, #ededed, #fbfbfb); color:#000; border-color:#666;}
</style>

3. Setelah menyimpan kode CSS, sekarang tinggal menyimpan kode JavaScript dibawah ini tepat sebelum tag </body>
<script type='text/javascript'>
// JavaScript - Widget Find Text on this page!
//<![CDATA[
jQuery.fn.highlight = function (pat) {
function innerHighlight(node, pat) {
var skip = 0;
if (node.nodeType == 3) {
var pos = node.data.toUpperCase().indexOf(pat);
if (pos >= 0) {
var spannode = document.createElement('span');
spannode.className = 'kr-highlight';
var middlebit = node.splitText(pos);
var endbit = middlebit.splitText(pat.length);
var middleclone = middlebit.cloneNode(true);
spannode.appendChild(middleclone);
middlebit.parentNode.replaceChild(spannode, middlebit);
skip = 1;
}
} else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
for (var i = 0; i < node.childNodes.length; ++i) {
i += innerHighlight(node.childNodes[i], pat);
}
}
return skip;
}
return this.length && pat && pat.length ? this.each(function () {
innerHighlight(this, pat.toUpperCase());
}) : this;
};
jQuery.fn.removeHighlight = function () {
return this.find("span.kr-highlight").each(function () {
this.parentNode.firstChild.nodeName;
with(this.parentNode) {
replaceChild(this.firstChild, this);
normalize();
}
}).end();
};
/* end plugin */

var $finder = $('#text-finder'),
$field = $finder.children().first(),
$clear = $field.next(),
$area = $(document.body),
$viewport = $('html, body');

$field.on("keyup", function () {
$area.removeHighlight().highlight(this.value); // Highlight text inside `$area` on keyup
$viewport.scrollTop($area.find('span.kr-highlight').first().offset().top - 50); // Jump the viewport to the first highlighted term
});
$clear.on("click", function () {
$area.removeHighlight(); // Remove all highlight inside `$area`
$field.val('').trigger("focus"); // Clear the search field
$viewport.scrollTop(0); // Jump the viewport to the top
return false;
});
//]]>
</script>

4. Terakhir, Simpan kode HTML di bawah ini pada area sidebar widget weblog anda :
<form id="text-finder" class="kr-text-finder" action="javascript:;"><input type="text" placeholder="Find text on this page.." class="find-form" /><input type="reset" value="Clear" class="kr-button"/></form>

Berikut contoh-nya :


Semoga Bermanfaat

Mohon maaf jika ada salah kata dalam penjelasan, terima kasih telah membaca tutorial tentang Cara Memasang Widget "Pencarian Text" di Blog., jika ada yang ingin ditanyakan silahkan tanyakan pada form komentar di bawah ini. :)

Happy blogging,
- Kang Rian -

Sumber kode : Johann Burkard & DTE

Kang Rian Ikuti

Web & Graphic Designer - Berpengalaman sejak 2010, fokus membantu Perusahaan / UMKM agar dikenal secara Global melalui Website Profesional & Desain yg Menjual.

Cek. Jasa-Design.web.id

     

22 komentar

  1. Balasan
    1. wuih, ngebut banget! :ngakak

      Hapus
    2. maklum gan, kebiasaan :cool

      ini kan sama aja kayak fungsi search ya kang ??

      Hapus
  2. kalo bisa gantikan fitur pencarian browser kang.

    BalasHapus
    Balasan
    1. maksud nya gimana sob? :)

      Hapus
    2. Seperti ini kang
      [img]https://lh5.googleusercontent.com/-VWYSzH0BMSY/U2IQZX_EbfI/AAAAAAAAANo/jvW5bueDtZc/Capture.PNG[/img]

      Hapus
    3. untuk penempatan / posisi bisa saja kang di css, namun untuk script mengalihkan fungsi shortcut bawaan browser "CTRL+F" dengan javascript/jquery itu saya belum nyoba. :D

      Hapus
    4. bisa dipadukan dengan javascript event keyboard. :D

      Hapus
    5. betul sob, barusan sempet googling cari yg ngelink ke stackoverflow namun "not found" :bingung .. hehe

      Hapus
    6. puwas siah "not found" hehehe :capedeh

      Hapus
    7. itu geura? datang2 jol mupuas .. :mewek *baong beben. :sorry

      Hapus
    8. kunanon attu kang beben teh, tanggung jawab tah Kang Rian :mewek hehe

      Kayak di DTE gitu ya, bisa diganti CTRL + F dan di modifikasi, cari yang kayak gitu belum nemu sampai saat ini. Dapat dari mana tuh DTE hehe

      Hapus
  3. [gplus-id]107577168276378903527[gplus-nama]+Kang Mousir[/gplus] iya kang mousir, nanti saya coba buatkan. :D , lagi intip2 source nya om tovic nih akhir-akhir ini :D . hehe emang top markotop om tovic. hehe

    BalasHapus
  4. mantep nih kang langsung :ngacir

    BalasHapus

  5. :2thumbup saya sukaaaa templatenya mas....
    template kang ismet yang mana ni mas???

    BalasHapus
  6. Jadi lebih menarik, ijin coba Kang :)

    BalasHapus
  7. Basic'nya keren juga nih pakai highlight, gak kepikiran sampai sini..

    BalasHapus
    Balasan
    1. hehe, sepertinya memang belum sempet di pikirin deh mba dian :D .

      Hapus
    2. Setelah di coba fungsinya sama dengan ajax search dari sumbernya, DTE :] kalau yg ini menggunakan event trigger dan Highlight

      Hapus
    3. yap betul sekali mba. :D

      Hapus

Terpopular! Minggu ini..

×