Как определить начало прокрутки списка winjs?

#javascript #listview #win-universal-app #scrollbar #winjs

#javascript #listview #win-universal-app #полоса прокрутки #winjs

Вопрос:

Я работаю с представлением списка в winjs, WinJS.UI.ListView.

 <div class="list-of-lists-listview" data-win-control="WinJS.UI.ListView"></div>
 

вызовет ли это какое-либо событие при запуске прокрутки.
У меня есть еще <div> один, который мне нужно сделать видимым, когда мы начнем прокручивать список.

Любая помощь приветствуется!

Ответ №1:

  <div class="list-of-lists-listview" data-win-control="WinJS.UI.ListView"></div>
 

Внутри JS получите представление списка, подобное

   var currentListView = document.querySelector(".list-of-lists-listview");
 

Не добавляйте обработчик события прокрутки непосредственно в элемент управления, вместо этого получите порт просмотра для просмотра списка, используя приведенный ниже код,

  var currentViewPort = currentListView.querySelector(".win-viewport");  
 

Теперь добавьте прослушиватель к этому порту просмотра

 currentViewPort.addEventListener("scroll", this._onScroll, true);
 

напишите обработчик с именем _onScroll, где мы можем написать наш код.

Ответ №2:

Если вы хотите включить событие прокрутки элемента управления ListView, вы можете использовать Html API:

HTML:

 <div id="myListView" 
     class="list-of-lists-listview" 
     style="height:500px;overflow:scroll" 
     data-win-control="WinJS.UI.ListView" >
</div>
 

JS:

 document.getElementById("myListView").onscroll = function (evt)
{
    ...
}
 

Примечания: Вам нужно ListView явно задать высоту и overflow:scroll отобразить полосу прокрутки.

Комментарии:

1. это не сработало. Но при запуске приложения этот элемент управления отобразит порт просмотра для просмотра списка. если мы добавили событие прокрутки в этот порт просмотра, оно будет работать.

2. Спасибо за поддержку 🙂