jQuery - 更改宽度使页面跳转到顶部

时间:2015-09-17 17:56:03

标签: javascript jquery html css page-jump

我试图让这个导航侧边栏在鼠标离开后滑动一段时间,使文本部分展开。问题是,无论何时滑动功能开始,页面都会跳到顶部。没有使用“#”,我尝试了overflow-y:scroll,在函数结束时返回false,preventDefault,但没有任何效果。

这是js代码

$(document).ready(function(){
    $("#navbar").delay(5000).animate({left: "-=15%"});
    $("#navwrap").css("width","2%").css("position","fixed");
    $("#bodywrap").delay(5000).animate({width: "90%"});

    $("#navbar").mouseleave(function(){
        $(this).stop(true, true).delay(3000).animate({left: "-=15%"});
        $("#bodywrap").delay(3000).animate({width: "90%"});
        $("#navwrap").css("width","2%").css("position","fixed");
    });

    $("#navwrap").mouseenter(function(){
        $("#navbar").stop(true,false);
        $("#bodywrap").stop(true,false);
        if ($("#navbar").css("left") != "0%"){
            $("#navbar").animate({left: "0%"});
            $(this).css("width","15%").css("position","initial");
            $("#bodywrap").animate({width: "75%"});
        };
    });
});

这是小提琴:http://jsfiddle.net/uuw2dzry/1/

1 个答案:

答案 0 :(得分:0)

大部分动画和延迟都可以通过CSS

完成

http://jsfiddle.net/fkL57v9d/

您的代码过于复杂,为错误和不良后果留下了空间。
我会考虑以更简单的方式重新创建此页面。