<div>Geçenlerde elemanın biri rengarenk bir yorum yazınca, ben de benim yorumumu rengarenk yapacak ufak bir kod yazmıştım. Ama sorun şu ki o anda önümde visual studio açıktı, ondan C#'ta yazıldı o kod. Ben bookmarklardan tıklayabileceğim şekilde olmasını istiyorum.

Yani amacımız şu:

1. Javascript browser'da o anda seçili olan yazıyı bulup, her harfi 'color] tag'leri içine alıp yavaş yavaş değişen bir şekilde renklendirecek.
2. Boşluk ve enter karakterlerini (' ','\r','\n') görmezden gelecek.
3. Yazı içindeki bbcode'ları da doğal olarak görmezden gelecek. Yani '[' karakterine rastlarsa, ']' karakterine gelene kadar atlayacak.

Öncelikle ne yapacağız? Kullanıcı bir textarea içinde bir yazıyı seçip seçmemiş mi ona bakacağız. Yani o anda "aktif" olan eleman "textarea" olmalı, bu textarea'da selectionStart, yani seçilmiş yazının başlangıcı selectionEnd ile aynı olmamalı. Çünkü aynı ise iki değer de bize o andaki karetin yerini verir.

Kod:
if (docu ment.activeElement.tagName=='TEXTAREA' && docu ment.activeElement.selectionStart!=docu ment.activeElement.selectionEnd) {
var hedefTextarea=docu ment.activeElement;
//Asıl kodumuz burada olacak...
}
Yani dedik ki, dokümanda aktif eleman textarea değilse veya seçim boyutu 0'dan büyük değilse fonksiyonu terket.

E bunlar uyarsa, renklendirmeye başlayabiliriz. Ben R, G ve B değerlerini birer değişkende tutacağım, ayrıca o esnada hangi renge geçtiğimi bilmek için bir de "state" değişkeni tutacağım. Renk değişiminde her adıma geçişte, state'i bir sonrakine geçireceğim. Siz kendi istediğiniz renk değişimini yapabilirsiniz.

Tabii ilk olarak R, G, B değerlerini #?????? şeklinde yazmak için bir byte'ı hex formatında gösteren ufak bir fonksiyona ihtiyacımız var.

<div style="margin:20px; margin-top:5px"> Kod:
var hexYap=n=>(n(n