一句话实现双击滚屏效果

双击滚屏的效果大家应该都见过吧,特别是在一些在线电子书的网站上,为了方便读者,都加上了双击鼠标自动滚屏的效果,单击鼠标则停止滚动,这应该也算是一种访客体验吧。包括我们最常见的百度百科,它也是用了双击自动滚屏的效果,可见这个效果比较适合于文字较多的网站,可便于阅读,省得滚动鼠标了。

鉴于本站取消了 WordPress 的评论分页后,这评论数量一下子显的就多了起来,这也是为了方便童鞋们看之前的留言嘛,不过这样一来页面也就被拉长了,怕童鞋们把鼠标滚轮滚坏了来找我赔,所以我也就D调加上了这双击滚屏的效果。很快就被细心的木木小盆友发现了,于是就分享探讨了一下啦。

实现页面双击鼠标自动滚屏的效果无非是用 Javascript 脚本咯,这是大多数网站的作法,包括百度百科的,不过我对代码的要求是少而精,只要能实现同样的效果就行。于是我就找到了这么一段,应该说是一句代码,只要将其放在头部的 body 标签里就可以实现全站的双击自动滚屏的效果。

<body onDblClick="s=setInterval('scrollBy(0,2)',50)" onMousedown="clearInterval(s)" onload="s=0;">

这样就 OK 了,这句代码不仅短小,更难能可贵的是,它还支持 Firefox、IE、Safari、Opera、Chrome 等所有主流浏览器,现在这年头测试网站能不用担心兼容还真是一件稀奇事呀,可喜可贺。说到这里,你可以双击一下页面试试,在本版面的任何一个角落双击鼠标都可以实现自动滚屏,单击鼠标左键则停止。

说到这里还没完,木木又问了一个问题,如何排除某区域的双击事件?呃。。。对,想起来了,木木也是比较能折腾的主,他用 JQuery 实现了双击回复评论的功能,所以如果在他的评论区域双击的话就可能冲突了,同一个双击事件,到底是滚屏还是回复评论呢?我捉摸着,既然双击滚屏的代码可以放在 body 标签里,那么能不能放在普通的 div 标签里呢?如果可以的话,那不就有办法排除掉评论区域了嘛。后来在本地测试了一下,还真行耶~这里就提供这么一个思路,就不再写代码了,原理和加在 body 中的一样,懂的朋友应该懂了。

话又说回来了,一句话的代码实现的滚屏效果毕竟不如百度百科那样大段的 Javascript 脚本实现的完美,页面往下滚动的时候可以发现细微的抖动,不是很平滑,几经调试才选择了以上代码中感觉最为合适的参数,将就着看还是可以接受的。

写完才发现原来自己这么话唠,不就一句代码嘛,居然写了这么一长串……

  1. 我发现滚动起来看不了,汗,字体全部模糊了,这不会是我屏幕问题吧,还是滚得太快了,当然,滚动起来肯定没有人在滚的时候看吧?那样对眼睛很伤的。

  2. 谢谢,博客又可以添加一个实用的功能了,呵呵,这个时候,我想老兄的博客就我一个人在线了,哈哈,好孤独哦!!

  3. Pingback: 双击滚屏及页面导航功能测试 | 3Q博客

  4. 我猛烈的双击了下,发现它居然走走停停,于是我惊讶的发现,我的鼠标滚轮可以一下子拉到底,然后写下这条评论 :evil:

  5. 屏幕一直在下滚,也在闪,一闪一闪亮晶晶。有没有双击往上滚的啊,哈哈。一句代码能写一篇文章,我一句话能说完的事文窘时也能拿来凑个一篇文章。

  6. 我才剛從 GR 閱讀器裡看到你這篇文,連過來就發現已經這麼多討論啦~還是萬戈強啊!

    不過實地測試一下你這一句代碼的滾屏效果,卻覺得反而閃動地傷眼哪!真是可惜了……

  7. 有些鼠标中间有滚轮的已经挺懒的了,现在还有更懒的方法 :idea:
    不过最后那个问题也说得对,评论时,双击还滚不滚呢,或者可以把滚轮效果不要用双击左键实现,换成双击右键实现,哈哈 :smile:

  8. 前天连点三个表情后发现页面开始滚……一开始以为触控板忘了锁后来怀疑是不是Chrome的新功能,最后发现这里是双击就滚…… :mad: :mad: :mad:

  9. 说实话,我很讨厌你这个东西。。。频率感觉不对,闪的眼难受,我还是喜欢用鼠标滑轮

  10. 代码学习了,不过大概不会使用上。以前看小说的时候觉得有这个功能挺好的,可是后来发现,这样其实并不适合阅读。

    应该是在评论框处重新定义按键监控就可以了吧