Ich versuche einen Effekt zu erstellen, bei dem ein div in einer Liste innerhalb eines bestimmten Bereichs der Seite größer wird, ohne beim Übergang des Übergangspunktes zu flackern (prominentes Problem in Chrome, vielleicht auch andere Browser).Ist es möglich, die CSS-Skalierung zu ändern, ohne zwischen den Zuständen beim Scrollen zu flackern?
Here's a jsfiddle of my current situation.
ich ziemlich viel habe erreicht, was ich brauche, dank einen großen jsfiddle Beitrag hier auf Stackoverflow - aber wenn ich meinen eigenen Skaleneffekt hinzuzufügen Art flackert, wenn Sie zu langsam bewegen mich über die Übergangsgrenze . Dies liegt natürlich daran, dass der Skalierungsübergang (oder die normale Änderung von Höhe/Breite) das Zurückschrumpfen innerhalb der Grenze bewirkt, sobald sie den Übergangspunkt bereits passiert hat, und umgekehrt natürlich.
Gibt es eine Methode, um dies mit einer CSS-Methode zu machen, oder muss ich das Skript ändern - und in diesem Fall (wie ich mit dieser Art von mathematischen Gleichungen nicht vertraut bin) wie?
$(document).ready(function() {
$(window).on('scroll', function() {
var windowHeight = $(window).height(),
gridTop = windowHeight * .3,
gridBottom = windowHeight * .6;
$('ul li').each(function() {
var thisTop = $(this).offset().top - $(window).scrollTop();
if (thisTop > gridTop && (thisTop + $(this).height()) < gridBottom) {
// $(this).css('background', 'red');
$(this).addClass('in_zone');
} else {
//$(this).css('background', 'silver');
$(this).removeClass('in_zone');
}
});
});
$(window).trigger('scroll');
});
Ah, natürlich! Genau das, was ich gesucht habe - danke, dass du mir geholfen hast, über den Tellerrand zu schauen. – Lenny