页面不会更新,直到我滚动

时间:2017-04-20 12:17:39

标签: jquery

我正在使用滚动功能,最近添加了一个刷新

  

(因为我有一个邮件表格,这是让?resp=0/东西离开的最简单方法。是的,我知道还有其他方法,但这个是最适合我使用的方式,所以请不要建议其他方法来做这个过程)

有时候,当我刷新页面时,它不会注意到它的位置。我的内容从display:none开始,但当它位于页面上的某个位置时,它是display:block。当我滚动页面时会突然更新(如图像显示导致他们获得display:block,并且网址从index.php#this更改为index.php#that)。如果它在刷新时立即改变,我想它,所以它不需要先滚动。

大多数时候它工作正常,但有时它会像那样,我不知道问题是什么。

以下代码:

$(function () {
    $(window).bind('scroll', function () {
        if ($(window).scrollTop() > ($(document).height() / 4.65) * 3) {
            $('.Attribute').removeClass('that').addClass('this'); (etc..)
            if (performance.navigation.type == 1) {
                window.location.replace("index.php#this");
            }
        }

        else if ($(window).scrollTop() > ($(document).height() / 4.65) * 1.3) {
            $('.Attribute').removeClass('that').addClass('this'); (etc..)
            if (performance.navigation.type == 1) {
                window.location.replace("index.php#that");
            }
        }

        else if ($(window).scrollTop() > $(document).height() / 4.65 * 0.3) {
            $('.Attribute').removeClass('that').addClass('this'); (etc..)
            if (performance.navigation.type == 1) {
                window.location.replace("index.php#things");
            }
        }
        else if ($(window).scrollTop() < $(document).height() / 4.65 * 0.3){
            $('.Attribute').removeClass('that').addClass('this'); (etc..)
            if (performance.navigation.type == 1) {
                window.location.replace("index.php#something");
            }
        }
    });
});

2 个答案:

答案 0 :(得分:1)

你可以考虑做:

$(window).bind('scroll', function () {
    else if ($(window).scrollTop() > ($(document).height() / 4.65) * 3) {
        $('.Attribute').removeClass('that').addClass('this'); (etc..)
        if (performance.navigation.type == 1) {
            window.location.replace("index.php#this");
        }
    }

    else if ($(window).scrollTop() > ($(document).height() / 4.65) * 1.3) {
        $('.Attribute').removeClass('that').addClass('this'); (etc..)
        if (performance.navigation.type == 1) {
            window.location.replace("index.php#that");
        }
    }

    else if ($(window).scrollTop() > $(document).height() / 4.65 * 0.3) {
        $('.Attribute').removeClass('that').addClass('this'); (etc..)
        if (performance.navigation.type == 1) {
            window.location.replace("index.php#things");
        }
    }
    else if ($(window).scrollTop() < $(document).height() / 4.65 * 0.3){
        $('.Attribute').removeClass('that').addClass('this'); (etc..)
        if (performance.navigation.type == 1) {
            window.location.replace("index.php#something");
        }
    }
}).scroll()

添加.scroll()会调用事件

或者你可以把事件放在一个函数中并调用它:

function onScroll () {
    else if ($(window).scrollTop() > ($(document).height() / 4.65) * 3) {
        $('.Attribute').removeClass('that').addClass('this'); (etc..)
        if (performance.navigation.type == 1) {
            window.location.replace("index.php#this");
        }
    }

    else if ($(window).scrollTop() > ($(document).height() / 4.65) * 1.3) {
        $('.Attribute').removeClass('that').addClass('this'); (etc..)
        if (performance.navigation.type == 1) {
            window.location.replace("index.php#that");
        }
    }

    else if ($(window).scrollTop() > $(document).height() / 4.65 * 0.3) {
        $('.Attribute').removeClass('that').addClass('this'); (etc..)
        if (performance.navigation.type == 1) {
            window.location.replace("index.php#things");
        }
    }
    else if ($(window).scrollTop() < $(document).height() / 4.65 * 0.3){
        $('.Attribute').removeClass('that').addClass('this'); (etc..)
        if (performance.navigation.type == 1) {
            window.location.replace("index.php#something");
        }
    }
}

$(window).bind('scroll', onScroll);
onScroll();

PS:第一个if是否是正常的,这是正常的吗?

答案 1 :(得分:1)

你可以试试这个

$(window).on("load scroll",function(e) {