javascript - 滚动时动画不起作用 - JQuery

标签 javascript jquery html css animation

我有一个网站,当您滚动时,它会“平滑地”(在 jquery 中使用动画 scrolltop)到另一个部分,拒绝您滚动到另一个站点。现在,我想要做的是,当您滚动到 section2 时,元素会出现并带有一些动画,而当您离开它时,它会消失,依此类推...

我这样做了,但只有当我刷新页面并且我已经在那个部分时它才有效。在其他情况下,它不起作用。我认为它不起作用,因为当您调用 $(window).scrollTop() 时它会立即返回 scrollTop,但它实际上应该等待 750 毫秒才能完成滚动动画。我尝试使用 setTimeOut 和其他东西,但我无法让它运行。

代码如下:

function animacionObjetosDeSections() {
$(window).scroll(function() {
    //each height of the sections
    var altoSection2 = $('#section2').offset().top;
    var altoSection3 = $('#section3').offset().top;

    //if scrolltop is the same to the height of section2, it displays the animation, else it returns to original state
    if ($(window).scrollTop() == altoSection2) {
        $('.view-of-page').animate({left: '2%'},600);
        $('.page-info h2').animate({opacity: 1}, 650);
    } else {
        $('.view-of-page').animate({left: '-50%'},600);
        $('.page-info h2').animate({opacity: 0}, 650);
    }
});

编辑:

知道它可以工作,但对于每个滚动,它都会识别出 30 个滚动事件,我必须等待这 30 个事件 * 750 毫秒才能使该功能再次工作。

代码:

function animacionObjetosDeSections() {
$(window).scroll(function() {
    setTimeout(function() {
    //each height of the sections
    var altoSection2 = $('#section2').offset().top;
    var altoSection3 = $('#section3').offset().top;

    //if scrolltop is the same to the height of section2, it displays the animation, else it returns to original state
    if ($(window).scrollTop() == altoSection2) {
        alert("hola");
        $('#section2 .view-of-page').animate({left: '2%'},600);
        $('#section2 .page-info h2').animate({opacity: 1}, 650);
    } else {
        $('#section2 .view-of-page').animate({left: '-50%'},600);
        $('#section2 .page-info h2').animate({opacity: 0}, 650);
    }
        },701);
});

最佳答案

当您到达该部分时,使用 slideup()slidedown() 函数。 例如,当您滚动到第 2 部分时,在您的部分 div 上使用 slidedown() 函数,它将与动画一起出现,当您离开该部分时,请使用 slideup() 函数和您的部分将随着动画消失。

关于javascript - 滚动时动画不起作用 - JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44378363/

相关文章:

javascript - 如何删除 jquery 对话框上关闭按钮上的 Tab 键按下的焦点

jQuery 和 :before CSS tag

html - 如何垂直顶部对齐 INPUT 文本元素中的文本?

javascript - PHP 无法识别使用 JavaScript 动态添加的字段

javascript - 确定 JavaScript e.keyCode 是否为可打印(非控制)字符

javascript - 在 Google map 信息窗口中显示动态内容

javascript - 使用 jquery 将 blogspot 文章加载到 div 中

javascript - 需要帮助如何在 jQuery 中使用 event.stopPropagation()

html - Angular js 标签内容 HTML 标签不呈现

php - 加载程序,它还显示网页加载的百分比