<html>
<head>
<title>类似翻页效果展示</title>
<style>
#focus{
border: #ccc 2px solid;
width: 530px;
position:relative;
height: 170px;
}
#beni{
left: 0px;
margin: 0px;
width: 100px;
list-style-type: none;
position: absolute;
top: 2px;
}
#beni li{
border-top: #fff 1px solid;
font-size: 12px;
float: left;
width: 100px;
text-indent: 24px;
line-height: 26px
}
#beni li.first{
border-top: 0px
}
#beni li a{
display: block;
font-weight: bold;
background: #eee;
margin: 0px;
text-decoration: none
}
#beni li a:hover{
background: #f9f9f9;
}
#description{
width:420px;
overflow:hidden;
float:right;
margin-right:3px;
padding-top: 5px;
}
#kun{
float:left;
margin-top:10px;
height:200px;
}
</STYLE>
<script>
//窗体加载时就执行的函数定义
window.onload=function(){
var ele=document.getElementById("description");
var w=ele.clientWidth;
var n=20,t=20;
var timers=new Array(n);
var c=document.getElementById("beni").getElementsByTagName("li");
for(var i=0;i<c.length;i++){
c[i].index=i;
c[i].onmouseover=doSlide;
}
c=null;
//如果是要显示第一张不执行循环,否则执行循环
function doSlide() {
var x=ele.scrollLeft;
var d=this.index*w-x;
if(!d) return;
//循环执行20次一个函数
for(var i=0;i<n;i++)
(function() {
if(timers[i])
clearTimeout(timers[i]);
var j=i;
//每隔(i+1)*t个ms后执行一个函数
timers[i]=setTimeout(function(){
ele.scrollLeft=x+Math.round(d*Math.sin(Math.PI*(j+1)/(2*n)));//这个地方不明白 为什么这么做?
},(i+1)*t);
})();
}
}
</script>
</head>
<body>
<div id=focus>
<ul id=beni>
<li class=first><a href="#">博客频道</a></li>
<li><a href="#">资讯频道</a></li>
<li><a href="#">新闻频道</a></li>
<li><a href="#">产品频道</a></li>
<li><a href="#">悼念频道</a></li>
<li><a href="#">互动频道</a></li>
</ul>
<div id=description>
<!--一张长2520像素、高156像素的图片,该图片由6个不同画面组成,平均分割该图片-->
<img src="images/6.jpg" /> </div></div>
</div>
</body>
</html>
<head>
<title>类似翻页效果展示</title>
<style>
#focus{
border: #ccc 2px solid;
width: 530px;
position:relative;
height: 170px;
}
#beni{
left: 0px;
margin: 0px;
width: 100px;
list-style-type: none;
position: absolute;
top: 2px;
}
#beni li{
border-top: #fff 1px solid;
font-size: 12px;
float: left;
width: 100px;
text-indent: 24px;
line-height: 26px
}
#beni li.first{
border-top: 0px
}
#beni li a{
display: block;
font-weight: bold;
background: #eee;
margin: 0px;
text-decoration: none
}
#beni li a:hover{
background: #f9f9f9;
}
#description{
width:420px;
overflow:hidden;
float:right;
margin-right:3px;
padding-top: 5px;
}
#kun{
float:left;
margin-top:10px;
height:200px;
}
</STYLE>
<script>
//窗体加载时就执行的函数定义
window.onload=function(){
var ele=document.getElementById("description");
var w=ele.clientWidth;
var n=20,t=20;
var timers=new Array(n);
var c=document.getElementById("beni").getElementsByTagName("li");
for(var i=0;i<c.length;i++){
c[i].index=i;
c[i].onmouseover=doSlide;
}
c=null;
//如果是要显示第一张不执行循环,否则执行循环
function doSlide() {
var x=ele.scrollLeft;
var d=this.index*w-x;
if(!d) return;
//循环执行20次一个函数
for(var i=0;i<n;i++)
(function() {
if(timers[i])
clearTimeout(timers[i]);
var j=i;
//每隔(i+1)*t个ms后执行一个函数
timers[i]=setTimeout(function(){
ele.scrollLeft=x+Math.round(d*Math.sin(Math.PI*(j+1)/(2*n)));//这个地方不明白 为什么这么做?
},(i+1)*t);
})();
}
}
</script>
</head>
<body>
<div id=focus>
<ul id=beni>
<li class=first><a href="#">博客频道</a></li>
<li><a href="#">资讯频道</a></li>
<li><a href="#">新闻频道</a></li>
<li><a href="#">产品频道</a></li>
<li><a href="#">悼念频道</a></li>
<li><a href="#">互动频道</a></li>
</ul>
<div id=description>
<!--一张长2520像素、高156像素的图片,该图片由6个不同画面组成,平均分割该图片-->
<img src="images/6.jpg" /> </div></div>
</div>
</body>
</html>
这怎么有翻页效果呢?
通过设置图片外的DIV层的scrollLeft去滚动图片而已!其他都是CSS样式设置了
核心就是这句,其他都是一些CSS和取ID对象的东西
ele.scrollLeft=x+Math.round(d*Math.sin(Math.PI*(j+1)/(2*n)));//这个地方不明白 为什么这么做?