3

我的问题是当我单击(固定位置)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;
    });
});
4

1 回答 1

7

如果触发元素是空锚

<a href="#">some val</a>

然后位置哈希在单击后更改为“#”。由于找不到与空哈希对应的区域,浏览器会将页面滚动到顶部。
以下是您可以执行的操作:

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

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

<a href="javascript:void();">some val</a>

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

.container{
    overflow: auto !important;
}
于 2012-10-16T05:33:31.987 回答