我在流星文檔中找不到流星的滾動事件。在流星應用程序中有人滾動窗口時,我該如何去做某些事情?我試過'scroll window' : function(event) { ... }
,它不能按預期工作。流星滾動事件
流星滾動事件
回答
我一直在搞這個。
我還沒有找到一種方法在Template.template.events
內乾淨地做到這一點。
現在明顯的臨時解決方案將使用一個簡單的jQuery滾動事件。
$(window).scroll(function(){//your code});
應該這樣做。
事情我是想作爲選擇,但無濟於事使用爲:
'scroll *'
'scroll body'
'scroll document'
自然
'scroll window'
我嘗試了通用模板事件中的所有這些選擇器以及UI.body
的事件,因爲這是包含頁面主體的新的模板。
重申:您可能最好暫時使用jQuery。
這有點晚,但我想出了一個解決方案;至少在我目前的項目中。
我正在用Meteor實現D3,並且我想要一個自定義縮放功能,以便在用戶滾動時更改模板的尺寸。
產生反應變量 '變焦'
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);
}
});
創建一個返回變焦幫手。 將它引用到隱藏元素中的模板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();
}
});
謝謝。它適用於我(Y) –
我遇到的這個問題是,事件被添加多次,如果您導航到一個頁面,並返回到前一個頁面。 –
@JakobAlexanderEichler使用Template.onDestroyed()方法將其關閉。 –
作爲部分解決方案,您可以在您關心的任何元素上監聽mousewheel
事件。很多時候,這正是你想要的。
例如,以下事件偵聽器將阻止用戶使用滾輪進行滾動,但他們仍然可以使用頁面側面的導航欄。 (如果你還沒有overflowy: hidden;
禁用它)
Template.body.events({
'mousewheel': function(event, template) {
console.log("scrolled");
return false;
}
});
這個建議讓我感到不安。大多數用戶可能使用滾輪,但大量抓取,使用鍵盤快捷鍵或其他輔助工具來控制滾動。因此,除非你想要實現的功能非常適合'增強'類別,否則這個事件根本不可能用於拾取滾動事件。 –
鼠標滾輪調用並不一定意味着頁面已經滾動。 – tomericco
在流星沒有用於滾動事件並且沒有本地模板支撐,所以你有你的Template.name.onRendered
回調中做。但是,如果您不從Template.name.onDestroyed
中刪除內存,將會發生內存泄漏。這最好使用命名空間事件來完成,因爲像$(window).off('scroll');
這樣的東西會從窗口中分離所有滾動事件。
import { $ } from 'jquery';
Template.myTemplateName.onRendered(function(){
// You can do this multiple times
$(window).on('scroll.whateverNamespace', function() { ... });
$(window).on('scroll.whateverNamespace', function() { ... });
})
Template.myTemplateName.onDestroyed(function(){
$(window).off('scroll.whateverNamespace');
})
- 1. 流星動態模板事件
- 2. 流星事件地圖?
- 3. 流星:在單擊事件
- 4. 獲取與流星滾動的gumby.js
- 5. 流星動畫
- 6. 流星事件沒有解僱
- 7. 更新模板時的流星事件
- 8. 流星事件處理抑制問題
- 9. Bootstrap Popover +流星JS單擊事件
- 10. 事件中的流星更新模板
- 11. 關於在流星中刷卡事件
- 12. 流星 - 新DOM元素上的事件
- 13. 將對象傳遞迴事件流星?
- 14. 流星模板事件功能錯誤
- 15. 使用click事件與registerHelper(流星)
- 16. '呈現'事件不在流星發射
- 17. Dynamicaly爲流星模板添加事件
- 18. 流星捕獲事件時的textarea resise
- 19. 無法流星事件訪問變量
- 20. 流星單擊事件值未定義
- 21. 流星「這個」模板中的事件
- 22. 流星窗體事件沒有溝通
- 23. 流星輸入重點事件
- 24. 流星反應註銷事件
- 25. RichTextFx滾動事件
- 26. jQuery滾動事件
- 27. TListView滾動事件
- 28. jQuery - 滾動事件
- 29. jQuery滾動事件
- 30. tableheaderview滾動事件
據我可以告訴一切都沒有改變這個:https://github.com/meteor/meteor/issues/3298 – Aaron