今天要做一个DIV随滚动条滚动的效果,本人记得08年写过几次,但是至今实在是写不出来,在群里朋友的帮助下,使用CSS达到了想要的效果。无奈在chrome下显示的效果不如人意。于是继续进行调整。需要注意的点如下:
1、父元素要相对定位
2、需要处理IE6不兼容的问题
3、left或 right控制,在窗口小化时,仍然可以看到悬浮的层
4、left或right的设置要设为百分比(比如下边我设置的是65%,但是这个百分比在IE6下可能出现不同于其他浏览器的效果,所以有可能需要对IE6单独设置一个百分比。)
5、重点代码:
position:fixed;
left:65%;/*解决chrome不兼容问题在于此处要用百分比*/
top:160px;
z-index:999;/*为了让DIV永远在最前面,不被其他元素遮住*/
_position:absolute;/*这里开始的2句代码是为ie6不兼容position:fixed;而写的*/
_top:expression(eval(document.documentElement.scrollTop+160));/*这里需要获取滚动高度+元素原本的高度*/
left:65%;/*解决chrome不兼容问题在于此处要用百分比*/
top:160px;
z-index:999;/*为了让DIV永远在最前面,不被其他元素遮住*/
_position:absolute;/*这里开始的2句代码是为ie6不兼容position:fixed;而写的*/
_top:expression(eval(document.documentElement.scrollTop+160));/*这里需要获取滚动高度+元素原本的高度*/
_top:expression(eval(document.documentElement.scrollTop+documentElement.clientHeight-this.clientHeight));/*紧贴屏幕底部*/
下面贴上代码,也可以点此下载案例
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta content="IE=EmulateIE7" http-equiv="X-UA-Compatible"><!--据说这个可以只需要兼容IE7-->
<title>无标题文档</title>
<style type="text/css">
*{margin:0; padding:0; border:0;}
#d{
background:url(images/index_bg.jpg) repeat-y scroll center top transparent;
left: 50%;
margin-left: -500px;
position: relative;
width: 1000px;
}
.top,.main,.bottom,.fixed{text-align:center;}
.top{
background-color:#C30;
height: 101px;
padding-top: 4px;
}
.main{
width:980px;
margin:20px auto 0;
background-color:#FC0;
padding:10px;
}
.main .cont{height:900px;}
.main .cont .contL,.main .cont .contR{
float:left;
}
.main .cont .contL{
width:750px;
background-color:#93C;
height:900px;
margin-right:15px;
}
.main .cont .contR{
width:210px;
background-color:#33F;
height:500px;
}
.bottom{
background-color:#00F;
clear: both;
color: #373737;
height: 192px;
margin: 10px auto;
overflow: hidden;
padding-top: 20px;
width: 1000px;
}
.fixed{
width:190px;
line-height:40px;
padding-top:20px;
padding-bottom:20px;
background-color:#999;
position:fixed;
left:65%;
top:160px;
z-index:999;/*为了让DIV永远在最前面,不被其他元素遮住*/
_position:absolute;/*这里开始的2句代码是为ie6不兼容position:fixed;而写的*/
_top:expression(eval(document.documentElement.scrollTop+160));/*这里需要获取滚动高度+元素原本的高度*/
}
</style>
</head>
<body>
<div id="d">
<div class="top">我是头</div>
<div class="main">
我是主体<br />
有多少内容,我就有多高<br />
<div class="cont">
<div class="contL"></div>
<div class="contR"></div>
</div>
</div>
<div class="bottom">我是脚</div>
</div>
<div class="fixed">
我要随滚动条滚动<br />
我要随滚动条滚动<br />
我要随滚动条滚动<br />
</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta content="IE=EmulateIE7" http-equiv="X-UA-Compatible"><!--据说这个可以只需要兼容IE7-->
<title>无标题文档</title>
<style type="text/css">
*{margin:0; padding:0; border:0;}
#d{
background:url(images/index_bg.jpg) repeat-y scroll center top transparent;
left: 50%;
margin-left: -500px;
position: relative;
width: 1000px;
}
.top,.main,.bottom,.fixed{text-align:center;}
.top{
background-color:#C30;
height: 101px;
padding-top: 4px;
}
.main{
width:980px;
margin:20px auto 0;
background-color:#FC0;
padding:10px;
}
.main .cont{height:900px;}
.main .cont .contL,.main .cont .contR{
float:left;
}
.main .cont .contL{
width:750px;
background-color:#93C;
height:900px;
margin-right:15px;
}
.main .cont .contR{
width:210px;
background-color:#33F;
height:500px;
}
.bottom{
background-color:#00F;
clear: both;
color: #373737;
height: 192px;
margin: 10px auto;
overflow: hidden;
padding-top: 20px;
width: 1000px;
}
.fixed{
width:190px;
line-height:40px;
padding-top:20px;
padding-bottom:20px;
background-color:#999;
position:fixed;
left:65%;
top:160px;
z-index:999;/*为了让DIV永远在最前面,不被其他元素遮住*/
_position:absolute;/*这里开始的2句代码是为ie6不兼容position:fixed;而写的*/
_top:expression(eval(document.documentElement.scrollTop+160));/*这里需要获取滚动高度+元素原本的高度*/
}
</style>
</head>
<body>
<div id="d">
<div class="top">我是头</div>
<div class="main">
我是主体<br />
有多少内容,我就有多高<br />
<div class="cont">
<div class="contL"></div>
<div class="contR"></div>
</div>
</div>
<div class="bottom">我是脚</div>
</div>
<div class="fixed">
我要随滚动条滚动<br />
我要随滚动条滚动<br />
我要随滚动条滚动<br />
</div>
</body>
</html>
分类:
开发点滴
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架