【问题标题】:multiple animations triggered onScroll event with jQuery使用 jQuery 触发的多个动画 onScroll 事件
【发布时间】:2012-10-31 17:58:58
【问题描述】:

我有一个功能可以在滚动到视图时淡化特定的 DIV。我在这些 DIV 中有一些子元素,我想在每个淡入淡出动画结束时对其进行动画处理。如何在以下函数中添加其他函数?

$(window).scroll(function(d,h) {
tiles.each(function(i) {
    a = $(this).offset().top + $(this).height();
    b = $(window).scrollTop() + $(window).height();
    if (a < b) $(this).fadeTo(500,1) ???AND SLIDE CHILD ELEMENT ALSO!!???;
    ///how to I target each child element to do something in the above line???
    });
});

这是一个jsFiddle DEMO,它将帮助您形象化我的概念。动画已经起作用,问题是滑动子元素最初开始,我想做的是在每个 onScroll 淡入淡出开始时连续启动每个滑动功能。提前非常感谢。这将极大地帮助我解决我在使用 jQuery 时遇到的困难!

【问题讨论】:

  • @NullPointer 检查链接的小提琴演示
  • 是的,看演示你会立刻知道我想做什么。

标签: jquery events animation triggers onscroll


【解决方案1】:

如果你想在淡入淡出完成后做一些事情,创建一个回调函数,当动画结束时触发:

var that = $(this);
if (a < b) $(this).fadeTo(500,1, function() {
    alert ("Do something afterwards");
    that.children().someAction();
});

我希望,这就是你想要的。

为了让你的例子正常工作,你可以使用这个:

$(window).scroll(function(d,h) {
    tiles.each(function(i) {
        a = $(this).offset().top + $(this).height();
        b = $(window).scrollTop() + $(window).height();
        var that = $(this);
        if (a < b && true != $(this).data('faded')) {
            $(this).data('faded', true).fadeTo(500,1, function() {
                that.find('div').animate({left: '+=300', top: '+=12'}, 4500);
            });
        }
    });
});

这是一个演示:http://jsfiddle.net/mSRsA/

【讨论】:

  • 我插入你的代码没有成功。我猜它不会做我想要实现的目标,因为“幻灯片”动画需要绑定到一个数组中,所以每个单独的 SLIDE 动画都以 onScroll 事件上的每个单独的 TILE 淡入淡出开始。
  • 伪代码:当第一个 TILE 淡入然后 scrollMe1 滑动,当 2nd TILE 淡入然后 scrollMe2 滑动,当 3rd TILE......等等......
  • @user1644123 检查更新答案中的小提琴 - 我希望我没听错。 :)
  • @user1644123 你测试过小提琴吗?它只滑动一次。看看我如何使用.data()-方法检查动画是否已经运行。我添加的小提琴应该做你想做的。 :)
  • 我没有看到你在哪里提供了一个小提琴演示......?但是,看看我的:jsfiddle.net/BP6rq/466 ....我稍微修改了你的代码,它现在实际上可以工作了!!一切都很完美...除了无限滑动循环...我尝试将 .stop() 添加到行尾,但这破坏了代码,所以我把它拿出来了。有什么想法吗?谢谢!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 2013-07-27
  • 1970-01-01
  • 2011-09-15
  • 2011-08-31
相关资源
最近更新 更多