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.