0

如果您查看http://www.kahuna-webstudio.fr/并向下滚动页面大约 50 像素左右,您会看到屏幕左侧的 div 滑出。我设法复制了这种效果,但有一件事让我无法理解;那就是当您在我的页面上点击刷新时,我的 jquery 编程会重置。我不希望这种情况发生。http://www.kahuna-webstudio.fr/它运行良好。在他们的页面上,向下滚动 50 像素并出现左侧导航,即使您点击刷新,左侧导航仍然存在。仅当用户滚动回页面顶部时,左侧导航才会消失。

当前工作方式:用户在我的页面上向下滚动 296 像素,左侧导航滑出,用户将滚动条带回页面顶部(小于 25 像素),左侧导航向后滑动并消失。这一切都在工作。

什么不起作用:但是假设用户向下滚动 296 像素并且左侧导航滑出,然后用户在查看页面时点击刷新。那么在这种情况下,左侧导航消失了。我的 jquery 编程被重置。我希望左侧导航在用户处于 296 像素或更高像素时始终可见,即使用户点击刷新也是如此。

我的代码如下。我希望我的问题是有道理的,我欢迎任何帮助。谢谢你。

$(window).scroll(function () {
    var wintop = $(window).scrollTop();
    var docheight = $(document).height();
    var winheight = $(window).height();

    var newwidthgrow = 80;
    var smallheight = 0;
    var smallwidth = 0;

    //var expanded = "false";
    if ((wintop > 296)) {
        //expanded = "true";
        $("#slidebottom").stop().animate({
            height: docheight + "px"
        }, 'fast', function () {
            $("#slidebottom").stop().animate({
                width: newwidthgrow + "px"
            }, 'slow', function () {
                $("#slidebottomContents").fadeIn();
            });
        });
    }

    if ((wintop < 25)) {
        //expanded = "false";
        $("#slidebottom").stop().animate({
            height: docheight + "px"
        }, 'fast', function () {
            $("#slidebottomContents").fadeOut(function () {
                $("#slidebottom").stop().animate({
                    width: smallwidth + "px"
                });
            });
        });
    }
});
4

3 回答 3

1

Have this window scroll function in a separate place. Call it from window scroll and also from document ready. This will make sure that the user's position is checked both when the page is being scrolled and when the page is loaded/refreshed.

于 2013-08-27T17:39:12.017 回答
1

如果您在刷新前没有适当的代码来记住滚动位置,则页面将始终刷新并且滚动位置将再次为 0。听起来这不是您想要的功能。除非您在触发之前设置正确的窗口滚动位置,否则在启动时触发滚动不会解决您的问题。

您提供的示例页面看起来像使用多个滚动库,其中一个(不确定是哪个)可能处理在刷新时设置滚动位置。

要自己做,您必须使用本地存储或此处解释的 url: 刷新页面并保持滚动位置

于 2013-08-27T18:58:27.710 回答
0

You can use cookie to solve this probelm if you don't want to use server side to fix position when page is reloaded.

于 2013-08-27T17:39:27.840 回答