当我在浏览器中点击刷新时,我失去了jquery编程

When I hit refresh in the browser I lose my jquery programming

本文关键字:失去 jquery 编程 浏览器 刷新      更新时间:2023-09-26

如果您查看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"
                });
            });
        });
    }
});

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

您给出的示例页面看起来使用了多个滚动库,其中一个(不确定是哪一个)可能负责在刷新时设置滚动位置。

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

在单独的位置拥有此窗口滚动功能。通过窗口滚动和文档准备功能调用它。这将确保在滚动页面和加载/刷新页面时都检查用户的位置。

如果您不想在重新加载页面时使用服务器端来修复位置,则可以使用cookie来解决此问题。