Bağlantı Vurgulu üzerinde Solmaya Etkisi?


134

http://www.clearleft.com gibi birçok sitede, bağlantılar üzerine getirildiğinde, varsayılan işlemin hemen değiştirilmesinin aksine farklı bir renge dönüşeceklerini fark edeceksiniz.

JavaScript'in bu efekti oluşturmak için kullanıldığını varsayıyorum, kimse nasıl biliyor?


1
Teşekkür ederim. Şimdi, vurgulu bağlantıların nasıl yapılacağını anlıyorum, sadece vurgulu bağlantılar için nasıl daha pürüzsüz bir efekt oluşturulacağını anlamaya çalışıyorum.
Miles Henrichs

Yanıtlar:


327

Günümüzde insanlar sadece CSS3 geçişlerini kullanıyor çünkü JS ile uğraşmaktan çok daha kolay , tarayıcı desteği oldukça iyi ve sadece kozmetik, bu yüzden işe yarayıp yaramadığı önemli değil.

Böyle bir şey işi yapar:

a {
  color:blue;
  /* First we need to help some browsers along for this to work.
     Just because a vendor prefix is there, doesn't mean it will
     work in a browser made by that vendor either, it's just for
     future-proofing purposes I guess. */
  -o-transition:.5s;
  -ms-transition:.5s;
  -moz-transition:.5s;
  -webkit-transition:.5s;
  /* ...and now for the proper property */
  transition:.5s;
}
a:hover { color:red; }

Ayrıca, her bildirimi bir virgülle ayırarak, farklı zamanlamalara ve hareket hızı işlevlerine sahip belirli CSS özelliklerini de değiştirebilirsiniz:

a {
  color:blue; background:white;
  -o-transition:color .2s ease-out, background 1s ease-in;
  -ms-transition:color .2s ease-out, background 1s ease-in;
  -moz-transition:color .2s ease-out, background 1s ease-in;
  -webkit-transition:color .2s ease-out, background 1s ease-in;
  /* ...and now override with proper CSS property */
  transition:color .2s ease-out, background 1s ease-in;
}
a:hover { color:red; background:yellow; }

Burada demo


@AndreiCristof: Neyse ki IE10'da çalışıyor ! Hiçbir satıcı öneki gerekli (garip).
Marcel

Her ikisini de test ettim ve CSS yolunun jQuery yolu olarak düzgün ve akıcı olmadığını doğru neden bulursam umarım. Yanılıyorsam lütfen beni düzeltin.
QMaster

Harikasın! İyi açıkladı, görerek bana çok yardımcı oldu.
plast1K

Testim bir resimle, bir linkle değil.
Felipe

@FelipeMicaroniLalli bir soru göndermek için en iyi sanırım, kesinlikle bir sözdizimi sorunu gibi geliyor.
Marcel

9

"JavaScript'in bu efekti oluşturmak için kullanıldığını varsayıyorum" dediğim soruyu biliyorum ama CSS de kullanılabilir, bir örnek aşağıdadır.

CSS

.fancy-link {
   color: #333333;
   text-decoration: none;
   transition: color 0.3s linear;
   -webkit-transition: color 0.3s linear;
   -moz-transition: color 0.3s linear;
}

.fancy-link:hover {
   color: #F44336;
}

HTML

<a class="fancy-link" href="#">My Link</a>

Ve yukarıdaki kod için bir JSFIDDLE !


Cevaplardan birinde Marcel, "birden fazla CSS özelliğini geçiş" yapabileceğinizi belirtmek için öğeyi aşağıdaki gibi tüm hover stillerinizle etkilemek üzere "all" seçeneğini de kullanabilirsiniz.

CSS

.fancy-link {
   color: #333333;
   text-decoration: none;
   transition: all 0.3s linear;
   -webkit-transition: all 0.3s linear;
   -moz-transition: all 0.3s linear;
}

.fancy-link:hover {
   color: #F44336;
   padding-left: 10px;
}

HTML

<a class="fancy-link" href="#">My Link</a>

Ve işte bir JSFIDDLE "all" örneği için !


6

Bunu JQueryUI ile yapabilirsiniz:

$('a').mouseenter(function(){
  $(this).animate({
    color: '#ff0000'
  }, 1000);
}).mouseout(function(){
  $(this).animate({
    color: '#000000'
  }, 1000);
});

http://jsfiddle.net/dWCbk/


bunun için jqueryui gerek yok, sadece jquery
Juan

6
@Juan Hayır, jQuery yalnızca renklerin "tek sayısal değerleri" canlandırabilir (bkz. Api.jquery.com/animate/#animation-properties ). Ancak jQueryUI içine gömülü olan jQueryUI kütüphanesinin tamamına, sadece jQuery.Color eklentisine ihtiyacınız yoktur.
Niclas Sahlin

@Niclas Sahlin. Kemanınızın CSS geçişlerini ararken buldum. JQuery-UI geçişiniz çok daha pürüzsüz, kullanıcıların bunu fark edeceğinden eminim.
RubyRube

1
Uygulanması çok daha kolay olan css ile çözümler var
mhenkel

2

Bunu css'nizde deneyin:

.a {
    transition: color 0.3s ease-in-out;
}
.a {
    color:turquoise;
}
.a:hover {
    color: #454545;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.