为什么在UI5 sap.m.Page中滚动事件不起作用?

时间:2017-06-12 09:51:43

标签: javascript sapui5

Demo

我正在尝试在我的UI5页面中附加滚动事件,但它没有被触发:

 onInit: function() {
   $(window).scroll(function() { 
      console.log("scrolled")
   });
 },

 onAfterRendering: function() {
   //Or
   var oPage = this.getView().byId("myPage");
   oPage.attachBrowserEvent("window.onscroll", function(oEvent) {
      console.log("onscoll");
   });  
 }

1 个答案:

答案 0 :(得分:0)

事件" window.onscroll"应该更改为"滚动"代码中的事件。

oPage.attachBrowserEvent("scroll", function(oEvent) {
  console.log("onscoll");
});

此外,当您在页面上附加事件侦听器时,它不会触发,因为事件附加在Page控件的父div元素上。该控件的内容包括标题&一个section标签,其跨越一个等于其父级的组合高度。因此页面本身不会滚动。但是,如果内容超出可用高度,则section标签内的内容将滚动。

因此,您可以使用可以在其上创建滚动事件的Scroll Container,也可以在页面的section标签上附加事件侦听器。

$("#"+oPage.sId+" section").scroll(function(oEvent) {
    console.log("on content scroll");
});