• 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
125 wizyt
pytanie zadane 11 stycznia w JavaScript, jQuery, AJAX przez karolek110199 Nowicjusz (190 p.)

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

1 odpowiedź

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

Podobne pytania

0 głosów
1 odpowiedź 65 wizyt
0 głosów
2 odpowiedzi 610 wizyt
0 głosów
0 odpowiedzi 53 wizyt
...