页面跳转到顶部jquery .animate

Mel*_*zee 3 jquery scrollto jquery-animate

我的问题是,当我点击一个(固定位置)div来为另一个div设置动画时,整个页面会跳转到顶部.我试过preventDefault并返回false,但似乎没有什么可以解决这个问题!请帮忙.

这是脚本

$(document).ready(function(){

    $("#close").click(function(){
        $("#info").animate({ 
            width: "0",
            height:"0"
        }, 100 );

        $("#info").hide(),
        $(".container").animate({ 
            left:"0",
            width:"100%"
        }, 100 );
        return false;
    });

    $(".sidebar").click(function(evt){
        evt.preventDefault();
        $("#info").show(),
        $("#info").animate({ 
            width: "25%",
            height:"100%",
            left:"0"
        }, 100 );

        $(".container").animate({ 
            left: "25%",
            width:"75%"
            }, 100 );
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

gio*_*_13 7

如果触发元素是空锚

<a href="#">some val</a>
Run Code Online (Sandbox Code Playgroud)

然后点击后位置哈希变为"#".通过找不到与空哈希相对应的区域,浏览器将页面滚动到顶部.
这是你可以做的:

$('a[href=#]').on('click', function(e){
     e.preventDefault();
 });
Run Code Online (Sandbox Code Playgroud)

或者你可以像10年前那样做:将空锚点href更改为空的javascript语句:

<a href="javascript:void();">some val</a>
Run Code Online (Sandbox Code Playgroud)

更新
查看标记后,我得到了解决方案.您所要做的就是确保您.container具有滚动功能.动画时,元素获取css属性overflow : hidden(我真的不知道从哪里得到它),并且那种重置你的滚动位置.因此,您所要做的就是将其添加到样式表中:

.container{
    overflow: auto !important;
}
Run Code Online (Sandbox Code Playgroud)