我有以下代码:
Template.home.onRendered(function() {
var scrollElem = $("#scroll");
scrollElem.scrollTo("max", 500);
})
我也在为meteor使用jquery-scrollto包。它只在页面加载时触发一次,但是当我刷新它时再也不会触发。我知道onRendered仅在元素被更改时运行但我应该使用什么呢?我试图将此代码放在Meteor.startup()和$(window).load()中,但它也不起作用。
我通过添加setTimeout()
函数修复了它,但是如果用户的互联网连接速度慢怎么办?它不会开火。对此有何解决方案?
答案 0 :(得分:1)
如果尚未执行此操作,请尝试使用the newer version of the package。
可能您的#scroll
元素尚未加载。您可以尝试使用load()
方法:
Template.home.onRendered(function() {
var scrollElem = $("#scroll");
scrollElem.load(function () {
scrollElem.scrollTo("max", 500);
});
})
如果仍然无效,请尝试直接使用插件,而不是使用纯中介流星包。卸载软件包:
meteor remove johnantoni:meteor-scrollto
在您的头文代码中,例如 client / main.html :
<head>
<script src="//cdn.jsdelivr.net/jquery.scrollto/2.1.0/jquery.scrollTo.min.js"></script>
</head>
或者,如果你想在你的应用程序中保留lib,download it并将其放在 public / jquery-scrollto / 中,那么在头部:
<head>
<script src="/jquery-scrollto/jquery.scrollTo.min.js"></script>
</head>