实现如下图的效果:


<body>
<div id="shang" style="100%; height:400px; background-color:#FF6;">
</div>
<div id="zhong" style="100%; height:100px; background-color:#CCC;">
</div>
<div id="wei" style="100%; height:800px; background-color:#000;">
</div>
</body>
<script type="text/javascript">
window.onscroll = function() /*window.onscroll 滚动时出发*/
{
var a = document.getElementById("zhong");
if( window.scrollY >= 400) /*滚动页面至哪里,y代表的是纵向滚动*/
{
a.style.position = "fixed"; /* 固定定位*/
a.style.top = "0px"; /*如果没有这一步,往下滚动的话,那个框都会往下跟着移动,不会一直在浏览器的最上方*/
}
else
{
a.style.position = "relative"; /* 这一步,是为了再次往上滚动的话,那个固定住的框能够回到之前的那个位置*/
}
}
总结:要实现的效果是,中间灰色的那个框,在往下滚动的时候,能够一直在黑色框的最上边,再往上滚动的时候,灰色的框能够再次回到一开始的位置。
2.要实现如下图的效果:
<style type="text/css">
*{
margin:0px auto;
padding:0px;
}
.yiji{
200px;
height:40px;
background-color:red;
color:#fff;
text-align:center;
line-height:40px;
vertical-align:middle;
border:1px solid #FFF;
}
.erji1{
200px;
height:40px;
background-color:#F63;
color:#fff;
text-align:center;
line-height:40px;
vertical-align:middle;
border:1px solid #FFF;
}
#erji2{
display:none;}
#erji3{
display:none;}
#erji4{
display:none;}
</style>
<body>
<div class="yiji" onclick="Show('erji2')">首页</div>
<div id="erji2">
<div class="erji1">你</div>
<div class="erji1">你</div>
<div class="erji1">你</div>
</div>
<div class="yiji" onclick="Show('erji3')">90后</div>
<div id="erji3">
<div class="erji1">他</div>
<div class="erji1">他</div>
<div class="erji1">他</div>
</div>
<div class="yiji" onclick="Show('erji4')">80后</div>
<div id="erji4">
<div class="erji1">她</div>
<div class="erji1">她</div>
<div class="erji1">她</div>
</div>
</body>
<script type="text/javascript">
function Show(a)
{
var a = document.getElementById(a);
if(a.style.display == "block")//(显示)
{
a.style.display = "none";//(隐藏)
}
else
{
a.style.display = "block";//(显示)
}
}
</script>

总结:想实现的结果是有三个框,然后点一个出来下面的子菜单,再点的话就收回。函数中要if判断,如果还显示,就隐藏。否则就显示。
3.附加:网页项目中的实际操作
没有效果的图:

加了效果后的图:

点@我们,显示下面的框,同时字体颜色变红,再点击的话,下面的内容就会收起来,字体的颜色也会变为白色。
<style type="text-CSS">
#shou-you{
200px;
height:54px;
background-color:#000;
font-size:14px;
text-align:center;
vertical-align:middle;
line-height:50px;
float:right;
position:relative;
top:1px;
}
#shou-you-1{
50px;
height:50px;
float:left;
position:relative;
left:5px;}
#shang{
75px;
height:50px;
float:left;
cursor:pointer;
color:#FFF;
}
#xia{
200px;
height:100px;
display:none;
color:#900;
font-size:18px;
text-align:center;
vertical-align:middle;
line-height:15px;
background-color:#CCC;
font-weight:500;
position:absolute;
top:53px;
right:47px;
}
#shou-you-2{
35px;
height:50px;
float:right;
position:relative;
right:30px;
color:#FFF;}
</style>
<body>
<div id="shou-you">
<div id="shou-you-1" onclick="Show('xia')" >
<div id="shang" onclick="Se()">@我们</div>
</div>
<div id="shou-you-2">
足迹
</div>
</div>
<div id="xia"><p style=" margin-top:20px; ">书友交流QQ:</p><p style=" margin-top:35px; ">2324977928</p>
</div>
</body>
<script type="text/javascript" src="../JS语言/首页特效.js">
function Show(b)
{
var b = document.getElementById(b);
if(b.style.display == "block")//(显示)
{
b.style.display = "none";//(隐藏)
}
else
{
b.style.display = "block";//(显示)
}
}
function Se()
{
var c = document.getElementById("shang")
if(c.style.color == "red")//(显示)
{
c.style.color = "#FFF";//(隐藏)
}
else
{
c.style.color= "red";//(显示)
}
}
</script>
总结:这里面的字体颜色变化,函数的原理与显示隐藏的原理相类似,另建一个函数Se(),用this本身的情况是有相同的class名,改变的是自身的属性。另外当用到
c.style.属性时,你不获取,只是改变属性,可以把属性写在内嵌里面。如果获取,则必须要写在内联里。
4.CSS3中字体效果,阴影

<body>
<div style="color:#333; text-shadow: 5px 5px 5px #999999; font-size:20px; margin-top:50px; font-weight:bold; "> <em>图书记录框 记录你的阅读时光</em> </div>
</body>