当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript跟随滚动条滚动的层(浮动AD效果)

Javascript
11款基于Javascript的文件管理器
5款Javascript颜色选择器
JavaScript 对话框和状态栏使用说明
状态栏 时间显示效果 数字钟
在图片上单击获取图片原始大小
禁止在图片上使用右键
javascript 操作Word和Excel的实现代码
几个javascript操作word的参考代码
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
解决表单中第一个非隐藏的元素获得焦点的一个方案
解决jquery .ajax 在IE下卡死问题的解决方法
javascript 实现划词标记划词搜索功能
用Greasemonkey 脚本收藏网站会员信息到本地
javascript 关于# 和 void的区别分析
DIV+CSS+JS 变灰弹出层
Ajax+Json 级联菜单实现代码
javascript 读取XML数据,在页面中展现、编辑、保存的实现
html 锁定页面(js遮罩层弹出div效果)
基于jQuery的日期选择控件
javascript获得CheckBoxList选中的数量

Javascript 中的 javascript跟随滚动条滚动的层(浮动AD效果)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 183 ::
收藏到网摘: n/a

其实这个效果在很多网站中都能见到,其主要表现为网页两侧的浮动广告。看起来感觉很难做,但其实原理是很简单的,使用定时器没0.1秒检测层的位置并将其置在指定的位置(相对于窗口)。写了一个简单的代码:
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

注意:
if (window.innerHeight) {
posX = window.pageXOffset;
posY = window.pageYOffset;
}
else if (document.documentElement && document.documentElement.scrollTop) {
posX = document.documentElement.scrollLeft;
posY = document.documentElement.scrollTop;
}
else if (document.body) {
posX = document.body.scrollLeft;
posY = document.body.scrollTop;
}
这段代码是为了兼容标准,在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">
加上这段后,document.body.scrollTop永远等于0

body onscroll = "alert(document.body.scrollTop);"永远也不会引发。

解决办法:
使用:
document.documentElement.scrollTop
示例一:
var scrollPos;
if (typeof window.pageYOffset != 'undefined') {
scrollPos = window.pageYOffset;
}
else if (typeof document.compatMode != 'undefined' &&
document.compatMode != 'BackCompat') {
scrollPos = document.documentElement.scrollTop;
}
else if (typeof document.body != 'undefined') {
scrollPos = document.body.scrollTop;
}
alert(scrollPos);

示例二:
function WebForm_GetScrollX()
{
if (__nonMSDOMBrowser)
{
return window.pageXOffset;
}
else
{
if (document.documentElement && document.documentElement.scrollLeft)
{
return document.documentElement.scrollLeft;
}
else if (document.body)
{
return document.body.scrollLeft;
}
}
return 0;
}

-------------------------------------
pageYOffset是netscape的
document.body.scrollTop和document.documentElement.scrollTop是ie的,但我不知道他们的真正区别,只知道documentElement.scrollTop是xhtml兼容的(我用的是strict)