0

我试图让这个导航侧边栏在鼠标离开一段时间后滑开,使文本部分展开。问题是,每当滑动功能启动时,页面就会跳到顶部。没有使用“#”,我尝试了overflow-y:滚动,在函数末尾返回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/

4

1 回答 1

0

许多动画和延迟可以通过CSS

http://jsfiddle.net/fkL57v9d/

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

于 2015-09-17T20:20:32.547 回答