一、是源代码可以复制粘贴直接看效果,点击每个导航栏目,body的背景颜色都将是导航条的背景颜色,会出现滑动的效果。
二、这个实现的关键是,如何让背景,回到body中,这个target值如何设置。,在每次的背景变化中,注意背景在整个documeng文档中什么是不变的。缓动动画的原理都知道是 var leader=leader+(target-leader)/10;

<!DOCTYPE html>
<html><head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
ul,ol {
list-style-type: none;
}
* {margin:0;padding:0;}
html,body {
width: 100%;
height: 100%;
}
#ul {
width: 100%;
height: 100%;
}
ul li{
width: 100%;
height: 100%;
}
#ol {
position: fixed;
top:0;
left:50px;
}
#ol li {
width: 50px;
height: 50px;
border: 1px solid #000;
}
</style>
<script src="my.js" type="text/javascript"></script>
<script>
window.onload = function() {
var ulBox = $("ul");
var ulBoxLi = ulBox.children;
var olBox = $("ol");
var olBoxLi = olBox.children;
var bgColor = ["pink","purple","orange","blue","green"];
var leader = 0,target = 0,timer = null;
for(var i= 0; i<ulBoxLi.length; i++)
{
ulBoxLi[i].style.backgroundColor = bgColor[i];
olBoxLi[i].style.backgroundColor = bgColor[i];
olBoxLi[i].index = i; // 记录当前的索引号
olBoxLi[i].onclick = function() {
clearInterval(timer);
target = ulBoxLi[this.index].offsetTop; // 核心语句
timer = setInterval(function() {
leader = leader + (target - leader ) /10;
window.scrollTo(0,leader); // 屏幕滑动
//pic.style.left = leader + 'px';
},30)
}
}
}
</script>
</head>
<body>
<ul id="ul">
<li>首页</li>
<li>关注</li>
<li>动态</li>
<li>风格</li>
<li>作品</li>
</ul>
<ol id="ol">
<li>首页</li>
<li>关注</li>
<li>动态</li>
<li>风格</li>
<li>作品</li>
</ol>
</body>
</html>
<script type="text/javascript">
var ulBox=$("ul");
var ulBoxli=ulBox.children;
var olBox=$("ol");
var olBoxli=olBox.chilren;
var leader=0,target=0,time=null;
var bgColor[i]=["pink","purple","orange","blue","green"];
for(var i=0;i<ulBox.length;i++){
ulBox[i].style.backgroundColor=bgColor[i];
olBox[i].οnclick=function(){
ulBoxli.style.top=
}
}
</script>
<!--<script>
var ulBox=$("ul");
var ulBoxli=ulBox.children;
var olBox=$("ol");
var olBoxli=olBox.chilren;
var leader=0,target=0,time=null;
var bgColor[i]=["pink","purple","orange","blue","green"];
for(var i=0;i<ulBoxli.length;i++){
var olBoxli[i].styel.backgroundcolor=bgColor[i];
var ulBoxli[i]=ulBoxli[i];
var olBoxli[i].index=i;
}
olBoxli[i].οnmοusedοwn=function(event){
var ulBoxliTop=event.clientY-this.offsetTop;
}
</script>-->
本文介绍了一个HTML5实现的滑动导航栏,当点击导航栏目时,body的背景颜色会平滑过渡到导航条的背景颜色,产生滑动效果。关键在于设置target值,确保背景在文档中的正确位置。利用缓动动画原理实现颜色平滑过渡。

1587

被折叠的 条评论
为什么被折叠?



