Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Скролл страницы (https://javascript.ru/forum/events/64073-skroll-stranicy.html)

proliger 18.07.2016 22:51

Скролл страницы
 
Добрый вечер Великие форумчане , прошу вашей помощи т.к. весь день ищу информацию и не могу найти

Есть обработчик движения mouse wheel , вызываю через него функцию плавной прокрутки страницы до якоря когда надо вверх страницу когда не вверх то вниз.

Но страница прыгает (мерцает) , я так понимаю что нужно вызывать функцию с задержкой или ожиданием когда прокрутят столько сколько надо . Не пойму как реализовать этот момент задержки .

Botik21 18.07.2016 23:03

Плохо ищите реализаций и примеров полно в тырнете.
Телепаты в отпуске.
Что за скрипт?
Как выглядит?
Где пример посмотреть?

proliger 19.07.2016 09:51

Да примеров масса но они на jquery , а мне бы не хотелось его использовать
function addEvent(elm, evType, fn, useCapture) {
        if (elm.addEventListener) {
                elm.addEventListener(evType, fn, useCapture);
        return true;
        }
        else if (elm.attachEvent) {
                var r = elm.attachEvent('on' + evType, fn);
                return r;
        }
        else {
                elm['on' + evType] = fn;
        }
}

function wheel(event){
    var delta = 0;
    
    if (!event) event = window.event; 
    if (event.wheelDelta) {
        
        delta = event.wheelDelta/120;
    } else if (event.detail) {
        
        delta = -event.detail/3;
    }
    if (delta) { 
        if (event.preventDefault) 
          {
            event.preventDefault();
          }
        event.returnValue = false;       
        var dir = delta > 0 ? 'Up' : 'Down';     
     
    }
    
}

addEvent(window, 'mousewheel', wheel);
addEvent(window, 'DOMMouseScroll', wheel);

warren buffet 19.07.2016 15:46

задержки делаются так

var t;
function listenSomeEvent(e){
if(t)
    clearTimeout(t);
t= setTimeout(run,100);
}


Касательно скрипта. Не надо проверять на совместимость с ИЕ-6. Прошли те времена, уже давно никаких этих аттачевентов не надо чекать.


Часовой пояс GMT +3, время: 12:25.