Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 余烬JS中的滚动检测?_Javascript_Ember.js_Web Applications_Scroll_Action - Fatal编程技术网

Javascript 余烬JS中的滚动检测?

Javascript 余烬JS中的滚动检测?,javascript,ember.js,web-applications,scroll,action,Javascript,Ember.js,Web Applications,Scroll,Action,在Ember JS中检测滚动的最佳方法是什么?没有内置的滚动动作,我可以使用jquery,但不确定放在哪里?它会出现在我的application.js中,因为它有应用范围,还是其他地方 实际的滚动检测/逻辑在这里不是问题,而是如何以Embery方式设置这样的脚本 理想情况下,滚动是一种操作,可以在application.js文件中进行处理: import Ember from 'ember'; export default Ember.Route.extend({ actions: {

在Ember JS中检测滚动的最佳方法是什么?没有内置的滚动动作,我可以使用jquery,但不确定放在哪里?它会出现在我的
application.js
中,因为它有应用范围,还是其他地方

实际的滚动检测/逻辑在这里不是问题,而是如何以Embery方式设置这样的脚本

理想情况下,滚动是一种操作,可以在application.js文件中进行处理:

import Ember from 'ember';

export default Ember.Route.extend({
    actions: {
        onScroll: function() {
            alert('scrolled');
        }
    }
});

在工作中,我们使用生命周期挂钩来注册/注销在Ember中未实现的事件。我们使用didInsertElementwillDestroyElement生命周期挂钩将jQuery事件绑定/解除绑定到特定名称空间(通常是组件ID):

代码示例:

import Ember from 'ember';

export default Ember.Component.extend({

  didInsertElement() {
    this._super(...arguments)

    // Register your events here
    Ember.$(document).on('scroll.my-namespace', 'body', this.eventHandler)
    // this.$ if the element is located inside the component
    },

  willDestroyElement() {
    this._super(...arguments)

    Ember.$(document).off('scroll.my-namespace')
    // this.$ if the element is located inside the component
  },

  eventHandler(ev) {
      //Do sth with event
  }

})
另一种方法是扩展Ember.events的服务。在该服务中,您还可以注册jQuery事件侦听器。需要侦听scroll事件的组件可以订阅服务()。

我最终使用了这个,
ember perfectscroll
。它包装了必要的模板,并提供了大量有用的CSS类/函数。

看看这一点,它是有用的。这已解释为
调整大小
您可以将其替换为
滚动
。。。