4 Tem 2010

Blogger İçin Siren Gibi Yanıp Sönen Linkler

Blogger bloglarımızda bulunan bağlantıları (Linkler) özelleştirmeye ne dersiniz?

Blog içerisinde bulunan bağlantı linklerinin üzerine mouse ile gelindiğinde sarı/mavi/yeşil/mor ve daha pek çok renk tonunda tıpkı bir siren gibi renk değiştiren linkleriniz olsun istemez misiniz?

Cevap "evet" ise yapmamız gereken sadece bir JavaScript kodunu HTML'mize eklemek olacak.

Öncelikle CTRL + F kombinasyonu ile </head> etiketini aratıyoruz. Ardından bu etiketten önce aşağıdaki JS kodlarını kopyalayıp yapıştırıyoruz.

Sonrasında şablonu kayıt ediyoruz. İşte hepsi bu kadar.



 <script type='text/javascript'>

 //<![CDATA[

 var rate = 20;

 if (document.getElementById)
  window.onerror=new Function("return true")

 var objActive;  // The object which event occured in
  var act = 0;    // Flag during the action
  var elmH = 0;   // Hue
  var elmS = 128; // Saturation
  var elmV = 255; // Value
  var clrOrg;     // A color before the change
  var TimerID;    // Timer ID

 if (document.all) {
  document.onmouseover = doRainbowAnchor;
  document.onmouseout = stopRainbowAnchor;
  }
  else if (document.getElementById) {
  document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
  document.onmouseover = Mozilla_doRainbowAnchor;
  document.onmouseout = Mozilla_stopRainbowAnchor;
  }

 function doRainbow(obj)
  {
  if (act == 0) {
  act = 1;
  if (obj)
  objActive = obj;
  else
  objActive = event.srcElement;
  clrOrg = objActive.style.color;
  TimerID = setInterval("ChangeColor()",100);
  }
  }


 function stopRainbow()
  {
  if (act) {
  objActive.style.color = clrOrg;
  clearInterval(TimerID);
  act = 0;
  }
  }


 function doRainbowAnchor()
  {
  if (act == 0) {
  var obj = event.srcElement;
  while (obj.tagName != 'A' && obj.tagName != 'BODY') {
  obj = obj.parentElement;
  if (obj.tagName == 'A' || obj.tagName == 'BODY')
  break;
  }

 if (obj.tagName == 'A' && obj.href != '') {
  objActive = obj;
  act = 1;
  clrOrg = objActive.style.color;
  TimerID = setInterval("ChangeColor()",100);
  }
  }
  }


 function stopRainbowAnchor()
  {
  if (act) {
  if (objActive.tagName == 'A') {
  objActive.style.color = clrOrg;
  clearInterval(TimerID);
  act = 0;
  }
  }
  }


 function Mozilla_doRainbowAnchor(e)
  {
  if (act == 0) {
  obj = e.target;
  while (obj.nodeName != 'A' && obj.nodeName != 'BODY') {
  obj = obj.parentNode;
  if (obj.nodeName == 'A' || obj.nodeName == 'BODY')
  break;
  }

 if (obj.nodeName == 'A' && obj.href != '') {
  objActive = obj;
  act = 1;
  clrOrg = obj.style.color;
  TimerID = setInterval("ChangeColor()",100);
  }
  }
  }


 function Mozilla_stopRainbowAnchor(e)
  {
  if (act) {
  if (objActive.nodeName == 'A') {
  objActive.style.color = clrOrg;
  clearInterval(TimerID);
  act = 0;
  }
  }
  }


 function ChangeColor()
  {
  objActive.style.color = makeColor();
  }


 function makeColor()
  {
  // Don't you think Color Gamut to look like Rainbow?

 // HSVtoRGB
  if (elmS == 0) {
  elmR = elmV;    elmG = elmV;    elmB = elmV;
  }
  else {
  t1 = elmV;
  t2 = (255 - elmS) * elmV / 255;
  t3 = elmH % 60;
  t3 = (t1 - t2) * t3 / 60;

 if (elmH < 60) {
  elmR = t1;  elmB = t2;  elmG = t2 + t3;
  }
  else if (elmH < 120) {
  elmG = t1;  elmB = t2;  elmR = t1 - t3;
  }
  else if (elmH < 180) {
  elmG = t1;  elmR = t2;  elmB = t2 + t3;
  }
  else if (elmH < 240) {
  elmB = t1;  elmR = t2;  elmG = t1 - t3;
  }
  else if (elmH < 300) {
  elmB = t1;  elmG = t2;  elmR = t2 + t3;
  }
  else if (elmH < 360) {
  elmR = t1;  elmG = t2;  elmB = t1 - t3;
  }
  else {
  elmR = 0;   elmG = 0;   elmB = 0;
  }
  }

 elmR = Math.floor(elmR).toString(16);
  elmG = Math.floor(elmG).toString(16);
  elmB = Math.floor(elmB).toString(16);
  if (elmR.length == 1)    elmR = "0" + elmR;
  if (elmG.length == 1)    elmG = "0" + elmG;
  if (elmB.length == 1)    elmB = "0" + elmB;

 elmH = elmH + rate;
  if (elmH >= 360)
  elmH = 0;

 return '#' + elmR + elmG + elmB;
  }

 //]]>

 </script>


Bilgi: Js kodları içerisinde kırmızı olarak belirtmiş olduğum "var rate = 20" kısmındaki 20 sayısını isteğe göre değiştirebilirsiniz. Bu link üzerine gelindiğindeki renk dönüşüm hızını yavaşlatıp/hızlandıracaktır.

Demo için blogumuzdaki bağlantılarında üzerine mouse ile gelmeniz yeterlidir. Örneğin bu yazının başlığının üzerine mouse ile gelirseniz farkı anlayacaksınız :)

Kolay gelsin.

4 yorum:

  1. Eline sağlık..Uyguladım ve çok güzel oldu...

    YanıtlaSil
  2. Eyvallah kardeş paylaşımın için takipteyiz sizi

    YanıtlaSil
  3. Eyvallah Tabuhan, güzel paylaşımın için

    YanıtlaSil
  4. Üstat,
    Sitemizi ziyaret etmişsiniz.teşekkür ederiz bize sitemizle ilgili önerileriniz olabilirmi acaba?

    YanıtlaSil

Yorum yaparken dikkat edilmesi gerekenler;

1. Türkçe yazım ve dilbilgisi kurallarına uyunuz.
2. Hakaret içeren yorumlarda bulunmayınız.
3. Yorumlarınızın konu ile alakalı olmasına çalışınız.
4. Yorumlarınızda yasa dışı hiçbir bağlantı linki vermeyiniz.
5. Yorum Formunu doldurduktan sonra Profil Seç -> ADI/URL bölümünden isminizi yazıp yorum yaparsanız size karşı bir hitap şeklimiz olur.
6. Kurallara uymayan yorumlar silinmektedir...