例如,CSDN里,一个帖子有5个回复,怎么知道用户在哪个回复上的停留时间?一屏显示不完时,例如20个回复,利用滚动条的位置能计算吗?

解决方案 »

  1.   

    应该可以,但是会很麻烦。
    我的思路是这样的:你可以通过在滚动条滚动时触发一个事件,在这个事件中判断哪一个回复显示了出来;
    然后创建一个定时器来计时。前半部分可参考我的博客:http://blog.csdn.net/im110/article/details/6450322
      

  2.   

    不知道能否做到只获取当前页面显示的HTML元素;
    如果可以,还是可以计算出显示(这里把显示时间作为停留的时间)时间的,就是各个元素显示的累积和;
    如一个帖子回复的内容都会随滚动而显示此内容,且是由某element表示,
    当显示时,就计算,不显示,不计算,直到页面退出;
    关键就是获取过滤显示的elements,最后累计时间;
      

  3.   


    这个可以引导用户互动,现在很多网站都是,比如百度百科的,[对我有用],CSDN的回复也有个[对我有用],一般情况下,如果真的用户看了这个回复,一般鼠标都会在回复内容所在块上移动经过或停留,或者点击,选中等操作,总之就是与回那块进行互动,如果单独是计时,也不一定准。只能说明这块在用户浏览器上显示了很久,包括用户可能打开页面就吃饭去了,或者甚至屏幕都待机了。所以应该把停留时间和操作强度结合,另外还可以和像[对我有用]、[引用]这样的用户交互进行结合。另外,计算某个块在可显示区域的停留状态和时间应该是可以用js实现的
      

  4.   

    百度百科的,[对我有用],CSDN的回复也有个[对我有用],
    这个倒挺简单.如果要实现对某一回复的停留时间,这个不好控制吧.
      

  5.   

    以下是根据,用户鼠标停留时间的计算方法的一个Demo, 在FF下测试过方案:鼠标只要在这块上移动,就加时间值(这个值与具体时分秒没有任何关系,这个值只表示停留长度系数)。移动+1,点击+200,停留+100。  参数可更改。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title><script language="javascript">var times =new Array (0,0,0,0,0,0,0,0,0,0);
    var timeFun = null;
    function start(obj,index,time){

    if(timeFun != null){
    window.clearInterval(timeFun);
    }
    timeFun = window.setInterval(add,1000,obj,index,time);

    }function end(obj,index,time){
    if(timeFun != null){
    window.clearInterval(timeFun);
    timeFun = null;
    }
    }
    function add(obj,index,time){
    times[index] = times[index]+time;
    obj.innerHTML = "停留时间:" + times[index];
    }</script>
    </head><body><div id="rpy1" style="height:100px; width:90%; background-color:#CCC; border-color:#00C; margin:10px; padding:10px;" onmouseover="start(this,0,100)" onclick="add(this,0,200)" onmousemove="add(this,0,1)" onmouseout="end(this,0,0)">DIV1</div>
    <div id="rpy2" style="height:100px; width:90%; background-color:#CCC; border-color:#00C; margin:10px; padding:10px;" onmouseover="start(this,1,100)" onclick="add(this,1,200)" onmousemove="add(this,1,1)" onmouseout="end(this,1,0)">DIV2</div></body>
    </html>
    关键是自己制订方案,实现不是问题