Meteor的滚动事件

use*_*811 12 javascript jquery meteor

我在流星文档中找不到流星的滚动事件.当有人在流星应用程序中滚动窗口时,我该如何做某事?

我试过'scroll window' : function(event) { ... }哪个不能按预期工作.

mjk*_*fer 12

我也一直在搞乱这个.

我还没有办法在里面干净利落地做到这一点Template.template.events.

现在显而易见的临时解决方案是使用简单的jQuery滚动事件.

$(window).scroll(function(){//your code}); 应该做的伎俩.

我试图用作选择器而无济于事的是:

'scroll *'

'scroll body'

'scroll document'

而且很自然

'scroll window'

我在通用模板的事件中尝试了所有这些选择器,以及on UI.body的事件,因为这是包含页面主体的新的blaze模板.

重申:你最好暂时使用jQuery.


Ale*_*den 11

这有点晚了,但我想出了一个解决方案; 至少在我目前的项目中.

我正在使用Meteor实现D3,我想要一个自定义缩放功能,在用户滚动时更改模板的尺寸.

创建一个反应变量'zoom'

Template.graph.onCreated(function() {
    var self = this;
    self.zoom = new ReactiveVar(0);
    $(window).on('scroll', function(e) {
        // ... event processing stuff; 
        // say it produces value 'zoomAmount' ...
        self.zoom.set(zoomAmount);
    }
});
Run Code Online (Sandbox Code Playgroud)

创建一个返回缩放的帮助器.在隐藏元素的模板DOM中引用它以使其具有反应性.

Template.graph.helpers({
    zoom: function() { 
        // This will be called when 'zoom' changes, 
        // so treat this as your events function
        return Template.instance().zoom.get(); 
    }
});
Run Code Online (Sandbox Code Playgroud)