随滚动条滚动而滚动的层的实例:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<div id="oLayer" style="position:absolute;left:30;top:60;z-index:2;background:green;width:120px;height:70px">
</div>
<script language="javascript">
document.write(new Array(100).join("<br>"))
var init_pos=document.getElementById('oLayer').style.posTop ;
document.body.onscroll=function(){
document.getElementById('oLayer').style.posTop=document.body.scrollTop+init_pos ;
}
</script>
</BODY>
</HTML>
这里要强调一下
一、 在页面中加一个随着页面滚动条滚动的小图片广告,发现document.body.scrollTop
这个属性在本地的时候能取到值,但是传到服务器上的时候取到的值一直不变,其解决方案有如下2种:
<1> 原来在HTML文件头部声明了这样一句:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
改成这样就好了:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
但是W3c的标准的引用,样式会发生变化。
<2>将document.body.scrollTop改为document.documentElement.scrollTop;
二、我使用的是IE7,实施很正常,可是当在IE6里面时,window.document.body.onscroll在我的IE6览器里根本就不触发,所以这又是一个新问题了,在网上找了找其原因及解决办法如下:
其原因还是和DOCTYPE声明有关,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,这个DOCTYPE声明是不会触发window.document.body.onscroll事件的,那如果再改变DOCTYPE声明的话又会影响到页面的CSS,所以此方法是不可行的,下面还有两种解决办法:
<1>使用setInterval或者setTimeout来不停的改变这个浮动层的位置;(这个方法很占资源,在不得以的情况下使用)
<2>CSS属性值position的fixed属性让该层能够始终位于窗口的指定位置;(该方案看起来挺美,可惜IE并不支持。不过在FireFox中的效果的确不错。正如文章在所说"从显示效果来看,在Firefox上的显示效果比IE中通过onscroll触发层的位置移动处理显示效果要好很多,看不到层的闪动。")
相关资料:
CSS positionfixed; for IE6
http://www.cssplay.co.uk/layouts/fixed.html
在下暂时还是使用了第一个方案...,具体实例如下:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<div id="floatLayout" style="position:absolute;left:30;top:60;z-index:2;background:green;width:120px;height:70px">
</div>
<script language="javascript">
document.write(new Array(100).join("<br>"))
var init_pos=document.getElementById('floatLayout').style.posTop ;
function displaytopleft(){
cHeight = document.body.clientHeight;// 頁面的實際高度
var nowTop = 0;
//ie5.5之后已经不支持document.body.scrollX对象了,所以要看其ie版本
if (document.body && document.body.scrollTop)
{
nowTop=document.body.scrollTop;
}
if (document.documentElement && document.documentElement.scrollTop)
{
nowTop=document.documentElement.scrollTop;
}
lTop = nowTop+init_pos;
if(cHeight > lTop){
document.getElementById('floatLayout').style.posTop=lTop ;
}
}
function topleft()
{
//使用setInterval或者setTimeout来不停的改变这个浮动层的位置
window.setInterval("displaytopleft()",10);
}
topleft();
</script>
</BODY>
</HTML>
2、漂浮窗口的实现实例:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<div id="floatLayout" style="position:absolute;z-index:1000;background:green;width:120px;height:70px">
</div>
<script language="javascript">
<!-- // Begin
var xPos = 800; //開始時浮動層left:800px
var yPos = 450; //開始時浮動層top:450px
var step = 1;
var delay = 20;
var height = 0;
var Hoffset = 0;
var Woffset = 0;
var yon = 0;
var xon = 0;
var pause = true;
var interval;
floatLayout.style.top = yPos;
function changePos() {
width = document.body.clientWidth;
height = document.body.clientHeight;
Hoffset = floatLayout.offsetHeight;
Woffset = floatLayout.offsetWidth;
floatLayout.style.left = xPos + document.body.scrollLeft;
floatLayout.style.top = yPos + document.body.scrollTop;
if(yon){
yPos = yPos + step;
}
else{
yPos = yPos - step;
}
if(yPos < 0){
yon = 1;
yPos = 0;
}
if(yPos >= (height - Hoffset)){
yon = 0;
yPos = (height - Hoffset);
}
if(xon){
xPos = xPos + step;
}
else{
xPos = xPos - step;
}
if(xPos < 0){
xon = 1;
xPos = 0;
}
if(xPos >= (width - Woffset)){
xon = 0;
xPos = (width - Woffset);
}
}
function start() {
floatLayout.visibility = "visible";
interval = setInterval('changePos()', delay);
}
start();
// End -->
</script>
</BODY>
</HTML>
分享到:
相关推荐
仿MAC苹果系统跟随滚动条飘浮网页下方的菜单,超酷,美观大方。
这是一个飘浮的div层,支持IE,火狐,适用于广告,qq网站活动等
用CSS和Javascript实现的DIV遮照飘浮层 通过点击按钮显示半透明遮盖层以及信息层 用CSS实现的固定飘浮,以及用Javascript实现的定位飘浮 用VS2008打开后直接运行UserShowPanelTest.aspx的效果是CSS实现的效果,要实现...
带关闭按键的飘浮广告条 在网站左右的 找了好久才找到的
图片飘浮广告代码图片飘浮广告代码
飘浮广告源代码,实现了广告随当前窗口移动。
飘浮、对联及悬浮广告代码大全 这里提供了一些javascript的悬浮广告代码,移植性好
这类广告目前网上仍然存在,飘浮在网页上,随网页滚动条的滚动自动固定在某一位置,并可允许用户关掉广告,一般常见于各大门户网站、新闻网站中。本广告代码原型为新浪首页左侧流媒体浮动图标广告代码,经开源爱好者...
VC 程序让 让窗口置顶的程序例子,即保证窗口总在最前面,也就是让窗口一直飘浮在屏幕的顶层,有点像很多小工具的窗口
摘要:C#源码,图形图像,文字滚动,漂浮广告 运用所学的知识,使用C#制作实现的窗体内的文字滚动(跑马灯)和图像漂浮效果,图像漂浮很像网页上见到的漂浮广告效果,图片在随机轨迹中不断飘动,随风摇拽自由自在,用C#...
无论是改变浏览器窗口大小还是下拉滚动条,这个弹出层都能始终保持居中;点击页面的关闭按钮,弹出层消失,页面恢复原样。 这里借鉴之前的一篇文章《基于jQuery的固定飘浮层》,使弹出窗口可以始终固定在浏览器的正...
网页图片飘浮代码,可同时飘浮两个图片链接。
jQuery仿QQ空间鼠标悬停上下滚动预览 jQuery仿QQ空间鼠标悬停上下滚动预览
网页两侧飘浮广告代码,
很好的飘浮文字跟随鼠标很好的飘浮文字跟随鼠标很好的飘浮文字跟随鼠标
推荐一个CSS3制作的半透明白块缓缓向上飘浮的动画效果给大家,通常用于网站顶部banner背景,挺好看的,分享一下。
飘浮广告代码 网页常用 简单易用 可以参照学习
图片飘浮广告 源码下载
网站上常见的飘浮qq客服源代码,可自己指定飘浮位置,引入js就可以使用
js 特效 html 特效 飘浮的气泡 js 特效 html 特效 飘浮的气泡