源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 237|回复: 20

[JavaScript] javascript跟随滚动条滚动的层(浮动AD效果)

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2007-8-28 20:35:00 | 显示全部楼层 |阅读模式
其实这个效果在很多网站中都能见到,其主要表现为网页两侧的浮动广告。看起来感觉很难做,但其实原理是很简单的,使用定时器没0.1秒检测层的位置并将其置在指定的位置(相对于窗口)。写了一个简单的代码:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
注意:
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)
回复

使用道具 举报

6

主题

2万

回帖

247

积分

中级会员

Rank: 3Rank: 3

积分
247
发表于 2022-8-13 01:59:42 | 显示全部楼层
给爸爸爸爸爸爸爸爸爸爸八佰伴八佰伴
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2023-5-20 05:51:31 | 显示全部楼层
看看看咋么
回复 支持 反对

使用道具 举报

13

主题

2万

回帖

85

积分

注册会员

Rank: 2

积分
85
发表于 2023-11-20 06:43:50 | 显示全部楼层
好东西可以可以可以可以
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

93

积分

注册会员

Rank: 2

积分
93
发表于 2023-12-8 12:39:30 | 显示全部楼层
论坛有你更精彩!
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

316

积分

中级会员

Rank: 3Rank: 3

积分
316
发表于 2024-3-2 06:58:36 | 显示全部楼层
还可以不错
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-3-10 09:49:34 | 显示全部楼层
搞个免费的用用
回复 支持 反对

使用道具 举报

6

主题

2万

回帖

247

积分

中级会员

Rank: 3Rank: 3

积分
247
发表于 2024-4-5 04:12:07 | 显示全部楼层
了乐趣了去了去了去了去了
回复 支持 反对

使用道具 举报

26

主题

8882

回帖

140

积分

注册会员

Rank: 2

积分
140
发表于 2024-5-18 19:17:42 | 显示全部楼层
不错的源码论坛
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

61

积分

注册会员

Rank: 2

积分
61
发表于 2024-6-16 08:13:19 | 显示全部楼层
先把创新班才能下班才能下班
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-25 02:33 , Processed in 0.082343 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表