2014-02-16 24 views
1

我使用Ajax的自动刷新使用此代码div标签在我的index.php文件滚动:Ajax的自动刷新 - 不影响

<script type="text/javascript"> 
$(document).ready(function() { 
$.ajaxSetup({ cache: false }); 
setInterval(function() { 
$('#messanges').load('messanges.php'); 
}, 1000); 
}); 
</script> 

<div id="messanges"></div> 
<textarea name="chat_input" id="chat_input"></textarea> 

在messanges.php我有一个自动向下滚动码。
原因我希望它在进入聊天时从底部开始。

<head> 
<script> 
var chat_height = $('#chat').outerHeight(); 
$('#chat_box').scrollTop(chat_height); 
</script> 
</head> 

<div id="chat_box" style="height:700px; overflow:auto"> 
<div id="chat"> 
<div id="Name">Test user:</div> 
<div id="img"><img src="picture.png" /></img></div> 
<p class="triangle-isosceles left"> 
"Test" </p> 
</div> 

由于ajax自动刷新,代码现在迫使滚动停留在底部。
我怎样才能让它自动刷新,但如果我想向上滚动,它不会强制我刷新下来?

+0

请问message.php也得到了聊天内容?如果是...尝试获取当前滚动位置...如果它位于底部,请执行autoscroll否则不会直到用户向下滚动或刷新页面。或者干脆添加一个chekcbox“自动滚动”开启/关闭:) – Dwza

回答

0

尝试一些类似这样的

<head> 
<script> 
    var chat_height = $('#chat').outerHeight(); 
    if($('.doScroll').is(':checked')) 
    { 
     $('#chat_box').scrollTop(chat_height); 
    } 
</script> 
</head> 

<input type="checkbox" class="doScroll" checked /> 
<div id="chat_box" style="height:700px; overflow:auto"> 
<div id="chat"> 
    <div id="Name">Test user:</div> 
    <div id="img"><img src="picture.png" /></img></div> 
    <p class="triangle-isosceles left">"Test" </p> 
</div>