Frage

Gibt es eine Möglichkeit in jQuery animieren der css3 border-radius Immobilien in Webkit und Mozilla-Browser?

Ich habe ein Plugin nicht gefunden, die es tun werden.

-webkit-border-radius

-moz-border-radius
War es hilfreich?

Lösung

Ich erwartete ursprünglich, dass so etwas wie ...

$("selector")
  .css({borderRadius: 10});
  .animate({borderRadius: 30}, 900);

... funktionieren würde. Aber ich war falsch: Webkit kann Sie auf gesetzt den Wert für alle vier Ecken über borderRadius, aber lassen Sie nicht es wieder lesen - so mit dem obigen Code, wird die Animation immer bei 0 beginnen anstelle von 10 IE hat das gleiche Problem. Firefox wird können Sie es zurück zu lesen, so funktioniert alles wie es erwartet wird.

Nun ... border-radius hat eine Art von Geschichte der Umsetzung Unterschiede.

Zum Glück gibt es eine Behelfslösung: nur jeden Eckenradius angeben individuell:

$("selector")
  .css({
    borderTopLeftRadius: 10, 
    borderTopRightRadius: 10, 
    borderBottomLeftRadius: 10, 
    borderBottomRightRadius: 10 })
  .animate({
    borderTopLeftRadius: 30, 
    borderTopRightRadius: 30, 
    borderBottomLeftRadius: 30, 
    borderBottomRightRadius: 30}, 900);

Beachten Sie, dass die Kompatibilität mit älteren Browsern erhalten möchten, können Sie all-out gehen und die alten Browser-Präfix Namen verwenden:

$("selector")
  .css({
    borderTopLeftRadius: 10, 
    borderTopRightRadius: 10, 
    borderBottomLeftRadius: 10, 
    borderBottomRightRadius: 10,
    WebkitBorderTopLeftRadius: 10, 
    WebkitBorderTopRightRadius: 10, 
    WebkitBorderBottomLeftRadius: 10, 
    WebkitBorderBottomRightRadius: 10, 
    MozBorderRadius: 10 
  })
  .animate({
    borderTopLeftRadius: 30, 
    borderTopRightRadius: 30, 
    borderBottomLeftRadius: 30, 
    borderBottomRightRadius: 30,
    WebkitBorderTopLeftRadius: 30, 
    WebkitBorderTopRightRadius: 30, 
    WebkitBorderBottomLeftRadius: 30, 
    WebkitBorderBottomRightRadius: 30, 
    MozBorderRadius: 30 
  }, 900); 

Das beginnt allerdings ziemlich verrückt zu bekommen; Ich würde es, wenn möglich, vermeiden.

Andere Tipps

einen Rat Juste, können wir eine Funktion verwenden, um Browser CSS Präfix zu erkennen Hier ist ein Beispielcode .. http://jsfiddle.net/molokoloco/f6Z3D/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top