Auf einer Website, die ich bei meinem Praktikum mache, möchte ich einen Pfeil machen, der flach wird, sobald der Benutzer herunterscrollt. Ich habe versucht, dies mit jQuery zu machen, aber das schien für den Browser sehr schwer.Ein Element auf Scroll drehen, was ist der leichteste Weg?
Für diese Funktion habe ich die .scroll() Funktion, und eine Berechnung, die auf den Pfeil (Dreieck) flacher sobald der Benutzer nach unten scrollt macht:
$(window).scroll(function(e){
triangleRotation = 5.6125 - ($(window).scrollTop()/($(window).height()/7.3));
if (triangleRotation <= 0) {
triangleRotation = 0;
}
$('.triangle-left').css({'transform': 'rotate(' + triangleRotation + 'deg)', '-webkit-transform': 'rotate(' + triangleRotation + 'deg)', '-moz-transform': 'rotate(' + triangleRotation + 'deg)'});
$('.triangle-right').css({'transform': 'rotate(-' + triangleRotation + 'deg)', '-webkit-transform': 'rotate(-' + triangleRotation + 'deg)', '-moz-transform': 'rotate(-' + triangleRotation + 'deg)'});
});
Ich habe versucht, dies auch über ein Dreieck geformt Bild und glätten Sie das Bild einfach. Dies war auch zu schwer.
Gibt es einen weniger schweren Weg, dies zu tun?
Ich würde vorschlagen, immer css Transformationen, da dies nur Farbe auslösen sollte, und nicht Reflow oder Layout. - Stellen Sie außerdem sicher, dass Sie bei der Ereignisfunktion "onscroll" einen "Gashebel" verwenden. – evolutionxbox
Es wurde über eine CSS-Transformation getan, ich habe gerade den Quellcode –
geschrieben Vielleicht berechnen Sie '$ (window) .height()/7.3' nicht jedes Mal, wenn das Scroll-Ereignis ausgelöst wird. - [Hier ist ein Beispiel für ein js Gas] (http://benalman.com/projects/jquery-throttle-debounce-plugin/) – evolutionxbox