javascript – Google Closure相当于jQuery $(‘html,body’).animate({scrollTop:800});
作者:互联网
有问题的代码会将页面滚动到页面上的特定点.正如标题所说,我希望Google Closure等同于以下jQuery:
$(‘html,body’).animate({scrollTop: 800});
它说here那个html,正文允许浏览器不一致,而$(文档)是等价的.
我尝试过以下方法:
var anim = new goog.fx.dom.Scroll(document, [0, 0], [0, 800], 400);
anim.play();
我也尝试过document.body.
goog.fx.dom.Svroll上网没有演示和惨淡缺乏信息.
解决方法:
使goog.fx.Scroll类与文档(正文或HTML)一起工作的方法是通过以下方式传递文档滚动元素:
/**
* Document scroll element obtained from goog.dom
* @type {Element}
* @private
*/
let documentScrollElement_ = goog.dom.getDocumentScrollElement()
/**
* Function triggered by any target to start scrolling
* @param {Event} e Triggered event
* @private
*/
function scrollTrigger_(e) {
let googScroll = new goog.fx.dom.Scroll(
this.documentScrollElement_,
[0, 0],
[0, 800],
400);
googScroll.play();
}
只是让你知道Scroll类有这个可选参数来为滚动添加缓动.你应该像这样新建这个类:
let googScroll = new goog.fx.dom.Scroll(
this.documentScrollElement_,
[0, 0],
[0, 800],
400,
goog.fx.easing.inAndOut(t)); // Note that you need to import or require the goog.fx.easing object
我知道这是一个老问题,但我遇到了同样的问题,并设法让它工作,所以我认为值得回答这个问题.
希望能帮助到你!
标签:javascript,jquery,animation,scroll,google-closure 来源: https://codeday.me/bug/20190725/1531041.html