45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > javascript >

javascript跟随滚动条滚动,onscroll事件的学习

电脑软硬件应用网 45IT.COM 时间:2012-04-03 13:28 作者:小贺

  今天研究了一下,滚动条事件,也是在无忧上看到的,顺便做下记录@

  比如做一个浮动广告效果,原理就是 设置一个定时器0.1秒检测层所在的位置  并将他指定到 相当于窗口的位置.

  核心代码如下(重点,也是常犯错误的地方:在xhtml页面中,document.body.scrollTop始终为0,即该属性无效,因此必须用其他的属性来判断,为兼容新旧标准,应该对属性的可用性进行判断。):


应用WEB标准会使ScrollTop属性失效!!! 
<!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"
 
加上这段后,<SPAN style="TEXT-DECORATION: underline">document.body.scrollTop永远等于0 
 
</SPAN><SPAN style="COLOR: #800080">
body onscroll = "alert(document.body.scrollTop);"永远也不会引发。  
 
</SPAN>

解决办法:使用:

document.documentElement.scrollTop

下面有2个例子

示例一: 
 
<STRONG>var scrollPos; 
if (typeof window.pageYOffset != 'undefined') {  <SPAN style="COLOR: #ff6600">//netscape 
</SPAN>scrollPos = window.pageYOffset; 
</STRONG>
?
1
2
3
4
5
<STRONG>else if (typeof document.compatMode != 'undefined' && 
document.compatMode != 'BackCompat') { 
scrollPos = document.documentElement.scrollTop; 
</STRONG>
?
1
2
3
4
<STRONG>else if (typeof document.body != 'undefined') { 
scrollPos = document.body.scrollTop; 
</STRONG>
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<STRONG>alert(scrollPos); 
 
</STRONG>
<SPAN style="TEXT-DECORATION: underline">示例二: 
 
</SPAN>function WebForm_GetScrollX() 
<STRONG>if (__nonMSDOMBrowser) 
return window.pageXOffset; 
else
     if (document.documentElement && document.documentElement.scrollLeft) 
     
          return document.documentElement.scrollLeft; 
      
    else if (document.body) 
    
       return document.body.scrollLeft; 
    
</STRONG>    return 0; 
 
@@@@@@
pageYOffset是netscape的 
document.body.scrollTop和document.documentElement.scrollTop是ie的,但我不知道他们的真正区别,
?
1
只知道documentElement.scrollTop是xhtml兼容的(作者用的是strict)

 

顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识