• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Płynne "gładkie" przewijanie strony

0 głosów
80 wizyt
pytanie zadane 11 stycznia w JavaScript, jQuery, AJAX przez użytkownika karolek110199 Nowicjusz (190 punkty)

Posiadam taki oto kod na płynne przewijanie strony, niestety "przeskok" jest różny w zależności od przeglądarki (Firefox, Chrome). Da się to jakoś naprawić, ewentualnie jakieś pluginy, które mi to zastąpił? Szukałem sporo, ale żadne parallax scroll czy one page to nie jest to co tutaj:
 

if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
	window.onmousewheel = document.onmousewheel = wheel;

	function wheel(event) {
		var delta = 0;
		if (event.wheelDelta) delta = event.wheelDelta / 30;
		else if (event.detail) delta = -event.detail / 3;

		handle(delta);
		if (event.preventDefault) event.preventDefault();
		event.returnValue = false;
	}

        var end = null;
	var interval = null;
	var goUp = true;

	function handle(delta) {
		var animationInterval = 20; //lower is faster
		var scrollSpeed = 20; //lower is faster

		if (end == null) {
			end = $(window).scrollTop();
		}
		end -= 20 * delta;
		goUp = delta > 0;

		if (interval == null) {
			interval = setInterval(function () {
				var scrollTop = $(window).scrollTop();
				var step = Math.round((end - scrollTop) / scrollSpeed);
				if (scrollTop <= 0 || 
					scrollTop >= $(window).prop("scrollHeight") - $(window).height() ||
					goUp && step > -1 || 
					!goUp && step < 1 ) {
						clearInterval(interval);
						interval = null;
						end = null;
				}
				$(window).scrollTop(scrollTop + step );
			}, animationInterval);
		}
	}



 

komentarz 11 stycznia przez użytkownika CzikaCarry Nałogowiec (33,320 punkty)
tak btw to w Windowsie 10 u mnie na chromie jest defaultowo płynne przewijanie :D
komentarz 11 stycznia przez użytkownika operator Stary wyjadacz (10,680 punkty)
Brakuje komentarzy. Co autor miał na myśli?
komentarz 11 stycznia przez użytkownika karolek110199 Nowicjusz (190 punkty)
Kod z internetu, dlatego bez komentarzy, proponuję przetestować, żeby zobaczyć działanie.

1 odpowiedź

0 głosów
odpowiedź 11 stycznia przez użytkownika karolek110199 Nowicjusz (190 punkty)
 
Najlepsza
Dla Firefox delta z funkcje wheel musi być pomnożona razy 12

Podobne pytania

0 głosów
2 odpowiedzi 545 wizyt
pytanie zadane 8 sierpnia 2015 w JavaScript, jQuery, AJAX przez użytkownika marcin1333 Początkujący (380 punkty)
0 głosów
0 odpowiedzi 47 wizyt
0 głosów
1 odpowiedź 90 wizyt
pytanie zadane 7 kwietnia 2016 w JavaScript, jQuery, AJAX przez użytkownika MichałMG Użytkownik (880 punkty)
...