Есть ли способ управления полосой прокрутки с помощью JavaScript? - PullRequest
0 голосов
/ 27 декабря 2011

В приведенном ниже коде есть функция прокрутки DIV для каждого набора интервалов, когда при попытке прокрутки вверх из-за интервала обновления полоса прокрутки снова падает.

Мой код:

   var int = self.setInterval("f2()", 1000);
   function f2() {
   var objDiv = document.getElementById("messages2");
   objDiv.scrollTop = objDiv.scrollHeight;
   }

Теперь, используя свойство onscroll для DIV, можно ли вообще остановить прокрутку, удерживая полосу прокрутки мышью?

Что-то вроде

       var int = self.setInterval("f2()", 1000);
       function f2() {
       var objDiv = document.getElementById("messages2");
       // if(objDiv.onscroll) i.e. when the particular DIV's scroll bar is on hold by cursor.
          {
          return false;
          }
       else
          {
            objDiv.scrollTop = objDiv.scrollHeight;
          }
      }

Если вышеуказанный тип функции может быть реализован кем-либо, пожалуйста, исправьте его синтаксис. Я новичок в JavaScript.

Заранее спасибо ..!

1 Ответ

5 голосов
/ 27 декабря 2011

Я не уверен, что вы спрашиваете здесь, но window имеет событие прокрутки, которое вы можете прослушать, как и любой другой элемент, для которого overflow: auto|scroll установлено с помощью CSS.

Вы не можете предотвратить прокрутку по умолчанию, но вы можете использовать метод scrollTo() или свойство scrollTop, если хотите сделать что-то раздражающее, например:

window.onscroll = function() {
    window.scrollTo(0,0);
};

Вот хорошая таблица сравнения события прокрутки: http://www.quirksmode.org/dom/events/scroll.html

scrollTo() документы: https://developer.mozilla.org/en/Window.scrollTo

...