【问题标题】:jquery scrollTop works but doesn't move the scrollbarjquery scrollTop 工作但不移动滚动条
【发布时间】:2013-06-17 08:41:09
【问题描述】:

我通过 $.load() 函数加载了一个 DIV。 完成后,我执行 $('#my_div').scrollTop(0);

它有效,内容从第一行可见,但是,这就是问题所在,从浏览器添加以允许用户滚动 div 内容的左侧滚动条没有移动,它停留在 .scrollTop() 之前的位置.

因此,如果我的用户手动向下滚动到底部,然后要求刷新数据,则数据将被刷新,并且内容将从第一行可见,但滚动条仍位于底部,因此如果用户单击,内容将向下滚动到底部!

有没有办法强制浏览器重绘 div 或做些什么来让滚动条滚动到顶部?

编辑 1:我试图从 dom 中删除 div 本身,添加“加载”文本,然后在加载完成后重新创建,但没有任何变化......

编辑 2:我没有在页面顶部滚动,它是一个模式(我正在使用 twitter 引导程序)

编辑 3:这是我的模态

<!-- Modal di verifica duplicati -->
<div id="fullDataModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="fullDataModal" aria-hidden="true">
    <div class="modal-body">
        <i class="icon-spinner icon-spin"></i> 
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true"><?php echo Yii::t('General','close'); ?></button>
    </div>
</div>

这是javascript代码

        $("DIV#fullDataModal DIV.modal-body")
            .load ("'. $this->createUrl("view", array("ajax" => true, "id" => $model->id))  .'"+contact_id, function(){
                $("DIV.modal-body").scrollTop( 0 );
            });

请注意:这意外地起作用了!

$("DIV.modal-body").scrollTop( 1 );

为什么?

【问题讨论】:

  • 如果它有效,那么您应该回答自己并关闭问题
  • 嗯...它不工作..它使用技巧工作,所以它不工作..
  • 但它至少对你有用 :) 这就是你所需要的
  • 我遇到了同样的问题,这很有效:$("DIV.modal-body").scrollTop( 1 );

标签: javascript jquery twitter-bootstrap


【解决方案1】:

试试这个

$(document).scrollTop($('#my_div').offset().top);

【讨论】:

  • 如果您滚动到页面顶部,为什么不使用 window.location.href = '#' ?
  • 抱歉,确实可以,但滚动本身并不“精确”。它滚动到标题的“一半”,所以,它不是“顶部”,而是“靠近顶部”......
  • 我编辑问题:我不是在滚动页面,而是在使用 twitter bootstrap 创建的模式中滚动
  • 是的,这段代码滚动到元素而不是页面的顶部,如果你想要顶部使用 $(document).scrollTop()
  • 如果您的情况不同,请将您的代码添加到问题中
【解决方案2】:

基于 scrollTop(1) 解决方法,以下工作:

$("#mydiv").scrollTop(1).scrollTop(0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 2014-07-31
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多