2012-10-08 27 views
0

我有一个元素可以通过插件的代码动态调整大小。 其自定义滚动条插入位于Herejquery找到当前底部的css值

所以我正在使用它进行这个小小的全球性聊天事情,基本上,我正在轮询数据库以查看是否有新消息,以及是否有更新聊天框和大小调整。这一切工作正常。

什么不能正常工作,是我把它设置为自动滚动到每次更新的底部。然而,如果你想在盒子顶部看过去的东西,这可能会令人讨厌。所以基本上我想我可以检查滚动条的滑动条是否在底部,然后使用插件底部函数保持它。但是,如果它不完全是0,那就把它放在原地。

但是,我不知道一个jQuery的功能,以获得这样的飞行底部。

当我尝试

alert($('.mCSB_container').css('bottom')); 

它只是说:汽车;

任何人都知道一个函数或方法来计算这个?

继承人由插件呈现的HTML:

<div id="chat_messages_wrap" class="scrollbox mCustomScrollbar _mCS_1"> 
    <div class="mCustomScrollBox" id="mCSB_1" style="position:relative; height:100%; overflow:hidden; max-width:100%;"> 
     <div class="mCSB_container mCS_no_scrollbar" style="position: relative; top: 0px; ">            
     <div class="message_wrap" id="message_57"> 
      <span class="message_time">Mon Oct 08 2012 17:57:01</span> 
      <div class="message_avatar_wrap"><img src="..."></div> 
      <div class="message_message_wrap"> 
       <span class="message_username">EyeptchsRLame</span> 
       <p class="message_message">hey there</p> 
      </div> 
      <div class="message_divider"></div> 
     </div> 
     </div> 
     <div class="mCSB_scrollTools" style="position: absolute; display: none; "> 
     <a class="mCSB_buttonUp" style="display:block; position:relative;"></a> 
     <div class="mCSB_draggerContainer" style="position:relative;"> 
      <div class="mCSB_dragger" style="position: absolute; top: 0px; "> 
       <div class="mCSB_dragger_bar" style="position:relative;"></div> 
      </div> 
      <div class="mCSB_draggerRail"></div> 
     </div> 
     <a class="mCSB_buttonDown" style="display:block; position:relative;"></a> 
     </div> 
    </div> 
</div> 

回答

1

您可以找到顶部的值,然后将高度

var obj = $('.mCSB_container'); 
var bottom = obj.position().top + obj.height(); 
+0

嗯,我认为这指出我朝着正确的方向发展。我想我只需要弄清楚哪一个元素从现在开始变大。甜蜜的交易谢谢。 – Rooster

+1

底部css值是元素底部与其父容器底部之间的距离。这个答案会给你元素底部和其父容器顶部之间的距离。从$('#container')。outerHeight()减去以获得真实底部。另外,position()不包括填充,边距等。 – RTF

1

为RTF找到一个元素的底部提示position()不占元素的填充,边框和边距。

你想用offset().top而不是找渲染元素的top(又名从文档的顶部的距离),然后加总呈现高度,使用outerHeight() jQuery的功能,包括所选元素的边框,填充,以及(如果此功能的参数设置为true)余量。

它会是这个样子:

var container = $('.mCSB_container'), 
    top  = container.offset().top, 
    height  = container.outerHeight(true), // true to include margin 
    bottom  = top + height + "px";   // add "px" so the browser has a unit to work with 

console.log(bottom);