编程语言
首页 > 编程语言> > javascript – Google Closure相当于jQuery $(‘html,body’).animate({scrollTop:800});

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