2011-06-21 124 views
1

我试图做一个DIV聊天框滚动时溢出,但不幸的是它停止短暂,我不知道为什么。这是我的代码。DIV溢出滚动停止短

有人能告诉我什么是错的,以及如何解决它?现在发生的事情是它会向下滚动一会儿,但它会停止滚动。我一直在这个问题上停留了将近一个小时。

+0

它什么时候停止滚动?下行多少行? – alquatoun

+0

您的代码不能帮助我我是afrad:http://jsfiddle.net/rF4rn/ –

+0

我有我的服务器上托管的聊天应用程序现在在goo.gl/QBYfS戴夫托马斯的建议。但现在它不是在滚动,尽管它在JSFiddle中工作正常。你们可以看看它,找出原因吗?谢谢。 – Ryan

回答

2

虽然我不是,但目前,肯定为什么你自己的尝试失败(尽管我猜这是变量CHATBOX_ID的问题,但这只是因为你没有显示它来自哪里),此版本的作品。尽管有一些假设(我将在后面解释):

var chatContentHeight, scrollVal; 
var chatHeight = $('#chat').height(); 

$('#message').keyup(

function(e) { 
    chatContentHeight = 0; 
    if (e.keyCode == '13') { // assuming you want messages submitted on hitting 'enter' 
     newMsg = $(this).val(); 
     $('<div />').text(newMsg).appendTo('#chat'); 
     $(this).val(''); 

     $('#chat > div').each(

     function() { 
      chatContentHeight = chatContentHeight + $(this).outerHeight(); 
     }); 

     if (chatContentHeight > chatHeight) { // checking whether or not scrolling is needed 
      scrollVal = (chatContentHeight - chatHeight); // defines the amount to scroll 
      $('#chat').scrollTop(scrollVal); 
     } 
    } 
}); 

JS Fiddle demo

我的假设是:

  1. 要提交上打进入消息,
  2. ,你会没事/想用div s到包含消息,我会个人更喜欢使用dlol,但它似乎使演示稍微复杂一点,以使用这些元素,尽管它们完全可以使用。

如果您想解释(或者,至少,如果你想帮助我们能够报价的解释),您需要至少发表您的完整的jQuery/JavaScript的或链接到现场演示,以再现您的问题(无论是在您自己的服务器上还是在JS Fiddle或类似的地方)。

参考文献:

+0

另外奇怪的是,它在JSFiddle上可以正常工作,但不能在具有完整HTML代码的服务器上正常工作。尽管JS的CSS代码大致相同。我认为它必定是HTML结构的一个问题,可能在绝对定位的div上使用浏览器高度限制。 – Ryan

+0

我肯定会找你的,但恐怕不会明天下午/晚上,恐怕。对不起,但我会尽我所能帮助更多。 –