【问题标题】:Jquery Waypoints fadeIn and animateJquery Waypoints 淡入和动画
【发布时间】:2014-10-07 19:37:47
【问题描述】:

我目前正在做一个需要一些 jquery 函数的项目,这些函数对我来说似乎太复杂了,所以我希望这里的任何人都可以为我提供一些解决方案。

我正在开发一个单页滚动网站,并且已经使用 jquery 和航点实现了一些功能。

这里是项目当前版本的链接:http://art-design.de/onlineprospekt/demo/

如果您向下滚动到第一个大厨房图像,在该图像下方有一个颜色更改功能,您会识别出一个鼠标光标图标,该图标在您滚动到该图标后开始上下移动。我使用具有以下功能的航点创建了此功能:

JS:

<!--Moving finger waypoints start -->

<script type="text/javascript">
$(document).ready(function() {
    $('.finger_1').waypoint(function() {
        setInterval(function(){
            $('.finger_1').animate({ top: '-=12px' }, 500);
            $('.finger_1').animate({ top: '+=12px' }, 500);
        }, 1300);
    }, {offset: '70%',  triggerOnce: true });
});
</script>

<!--Moving fingers waypoints end -->

HTML

<img class="pageItem finger_1" src="assets/images/item_18171.png" alt="hand 1" style="left:239px;top:1410px;"/>

CSS

.pageItem {
box-sizing: border-box;
display: block;
height: auto !important;
width: auto !important;}

现在这种方法似乎可行,但我对它并不满意,我还想为这个功能添加更多内容。我想要实现的是,手指不可见,但在您滚动到偏移量为“70%”的那个航路点后淡入淡出,并从那里开始动画。 正如你所看到的,我以某种方式设法让动画工作,使用我在 SO 上找到的一些代码,但我还不满意,看起来我无法让淡入淡出工作。

除此之外,如果您进一步滚动,我需要对网站上的所有手指图像执行相同操作

<img class="pageItem finger_1" src="assets/images/item_18171.png" alt="hier klicken" style="left:239px;top:1410px;"/>
<img class="pageItem finger_2" src="assets/images/item_18171.png" alt="hier klicken" style="left:703px;top:1440px;"/>
<img class="pageItem finger_3" src="assets/images/item_18171.png" alt="hier klicken" style="left:408px;top:2641px;"/>
<img class="pageItem finger_4" src="assets/images/item_18171.png" alt="hier klicken" style="left:438px;top:3371px;"/>
<img class="pageItem finger_5" src="assets/images/item_18171.png" alt="hier klicken" style="left:643px;top:4433px;"/>

所以应该有五个手指动画。如何组合功能? 有什么想法吗?

【问题讨论】:

    标签: javascript jquery jquery-animate fadein


    【解决方案1】:

    结合动画变化

    class="pageItem finger_1"class="pageItem finger finger_1"

    $('.finger_1')$('.finger')

    淡入淡出效果你可以试试,

    $('.finger').fadeOut();
    $('.finger').waypoint(function() {
        $('.finger').fadeIn();
        setInterval(function(){
            $('.finger').animate({ top: '-=12px' }, 500);
            $('.finger').animate({ top: '+=12px' }, 500);
        }, 1300);
    }, {offset: '70%',  triggerOnce: true });
    

    更新

    $(window).load(function(){
        $('.finger').each(function(){
            $(this).waypoint(function() {
                $(this).fadeIn();
                setInterval(function(elem){
                    elem.animate({ top: '-=12px' }, 500);
                    elem.animate({ top: '+=12px' }, 500);
                }, 1300,$(this));
            }, {offset: "70%", triggerOnce: true }).fadeOut();
        });
    });
    

    【讨论】:

    • 非常感谢您的努力。我用你的代码更新了网站,但它看起来不像我想要的那样工作。现在似乎动画在文件加载时同时为所有手指触发,但不是在航点上,我看不到和淡入。
    • 你的意思是offset: '70%'每个手指应该不同吗?
    • fadeIn 在本地为我工作,如果您看不到这个,请将偏移量从 70% 更改为 72%75%
    • 是的,这将是最终目标,让手指分别在每个手指到达屏幕中间时分别淡入,例如它淡入并设置动画。
    • 非常感谢。我现在就试试,如果有效,请告诉你。你帮了大忙
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2011-04-09
    相关资源
    最近更新 更多