0

我对 Javascript 的理解不是很好,所以在我们开始之前先请教一下。

我已成功使用 Mootools 1.1 滚动到元素 onclick 事件。我在这里使用 FX.Scroll 作为示例http://demos111.mootools.net/Fx.Scroll并且基本上撕掉了演示代码。

注意:如果您单击一个链接,然后快速单击另一个链接,它将立即停止移动到第一个元素并滚动到第二个。

我现在正在尝试使用 Mootools 1.3 为画廊使用淡入淡出效果,并使用 More Builder 来获取 FX.Scroll。它正在工作,但是当我单击一个链接然后立即单击另一个链接时,它只是继续第一个滚动。

看来 event.stop 不起作用。

请参阅示例http://www.mytimephotography.co.uk < 作品 http://www.mytimephotography.co.uk/test < 破碎

我正在使用代码:

window.addEvent('domready', function () {
  var scroll = new Fx.Scroll('scrollcontainer', {
    wait: false,
    duration: 2000,
    offset: {'x': 0, 'y': 0},
    transition: Fx.Transitions.Quad.easeInOut
  })
  $('link1').addEvent ('click', function(event){
    event = new Event(event).stop();
    scroll.toElement('c1');
  })
  //etc
})

请查看网站上的任何其他源代码。

4

1 回答 1

3

使用 Fx 选项对象的“链接”属性。默认设置为“忽略”,这就是原始动画继续运行的原因。相反,如果您希望它在当前动画之后运行,请使用“chain”,如果您希望它中断当前正在运行的动画,请使用“cancel”。

或者,使用更快的动画——两秒真的很长!:)

var scroll = new Fx.Scroll('scrollcontainer', {
    wait: false,
    duration: 2000,
    offset: {'x': 0, 'y': 0},
    transition: Fx.Transitions.Quad.easeInOut,
    link: 'cancel'
});
于 2010-12-16T19:00:56.260 回答