我创建了3个页面 - mainpage.php
,post.php
,display.php
主页的主聊天界面有一个div id' chatbox'和一个带有提交按钮的textarea。单击提交按钮,使用jQuery调用post.php
&将用户的消息输入数据库。这没有问题。
然后我使用jQuery ajax方法(见下文)来调用display.php
并将返回的内容放入chatbox div中。这是代码:
function loadLog(){
if(counter>1)
delaytime=2500;
counter++;
var oldscrollHeight = $("#chatbox").attr("scrollHeight") - 20;
var id=$("#ID").val();
var _url='display.php?Id='+id;
$.ajax({
url:_url,
cache: false,
success: function(html){
$("#chatbox").html(html); //Insert chat from DB into the #chatbox div
var newscrollHeight = $("#chatbox").attr("scrollHeight") - 20;
if(newscrollHeight > oldscrollHeight){
$("#chatbox").animate({ scrollTop: newscrollHeight }, 'normal');
}
},
});
}
注意:这是一个以2500毫秒 -
的间隔调用的函数setInterval (loadLog, delaytime);
这也很好。
现在,在display.php
中,我使用了
echo PIPHP_ReplaceSmileys($chatdisp['Msg'], 'smileys/');
在聊天中显示表情符号。这个代码在这里: http://pluginphp.com/plug-in59.php
我的问题:由于我们每2500毫秒刷新display.php
,因此表情符号每次显示时都会闪烁。这不会发生在文本中,因为文本很快,而图像需要时间加载。这不太理想。有没有办法防止这种眨眼?
答案 0 :(得分:3)
尝试将笑脸设为背景。一个充满情感的大文件。它将被加载一次,之后您可以轻松地在块上设置类定义的笑容。例如:<div class="emotion lol"></div>