Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
python week

Diskuze: Zaražení scrollování v určitém bodě stránky

Aktivity
Avatar
Jan Troják
Brigádník
Avatar
Jan Troják:3.3.2018 16:27

Ahoj,
vytvářím stránku a potřebuju vytvořit funkci, která by při scrolování zajistila, aby se stránka zasekla v bodě který potřebuji (začátek nového section). Nenapadá někoho jak to udělat?

stránka: http://web.topenitrojak.cz/

Předem děkuji za reakce

 
Odpovědět
3.3.2018 16:27
Avatar
Šimon Rataj
Člen
Avatar
Šimon Rataj:3.3.2018 17:15
var keys = {37: 1, 38: 1, 39: 1, 40: 1};

function preventDefault(e) {
  e = e || window.event;
  if (e.preventDefault)
      e.preventDefault();
  e.returnValue = false;
}

function preventDefaultForScrollKeys(e) {
    if (keys[e.keyCode] && window.pageYoffset>=/*Sem zadej souřadnice začátku nového section*/) {
        preventDefault(e);
        return false;
    }
}

  if (window.addEventListener) // older FF
      window.addEventListener('DOMMouseScroll', preventDefault, false);
  window.onwheel = preventDefault; // modern standard
  window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE
  window.ontouchmove  = preventDefault; // mobile
  document.onkeydown  = preventDefaultForScrollKeys;

Částečně převzato ze stránky https://stackoverflow.com/…-temporarily

Editováno 3.3.2018 17:16
 
Nahoru Odpovědět
3.3.2018 17:15
Avatar
Jan Troják
Brigádník
Avatar
Odpovídá na Šimon Rataj
Jan Troják:3.3.2018 19:03

Pouze to zablokuje veškeré scrollování na stránce

 
Nahoru Odpovědět
3.3.2018 19:03
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Šimon Rataj
Člen
Avatar
Odpovídá na Šimon Rataj
Šimon Rataj:3.3.2018 19:09

Zkus to takhle:

var keys = {37: 1, 38: 1, 39: 1, 40: 1};

function preventDefaultScrolling(e) {
  e = e || window.event;
  if(window.pageYoffset>=/*Sem zadej souřadnice začátku nového section*/) {
    if (e.preventDefault)
        e.preventDefault();
    e.returnValue = false;
  };
}

function preventDefaultForScrollKeys(e) {
    if (keys[e.keyCode]) {
        preventDefaultScrolling(e);
        return false;
    }
}

  if (window.addEventListener) // older FF
      window.addEventListener('DOMMouseScroll', preventDefaultScrolling, false);
  window.onwheel = preventDefaultScrolling; // modern standard
  window.onmousewheel = document.onmousewheel = preventDefaultScrolling; // older browsers, IE
  window.ontouchmove  = preventDefaultScrolling; // mobile
  document.onkeydown  = preventDefaultForScrollKeys;
Editováno 3.3.2018 19:10
Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět
3.3.2018 19:09
Avatar
Jan Troják
Brigádník
Avatar
Jan Troják:3.3.2018 19:21

Díky :)

 
Nahoru Odpovědět
3.3.2018 19:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.