第一步:前端款式以及html代码(图片自行增加)
css代码:
#container{
width: 1200px;
height: 400px;
margin:0 auto;
overflow: hidden;/*超越的图片垂直方向隐蔽,程度方向也隐蔽*/
position: relative;/*提供给子元素定位*/
}
#list{
width: 7200px;
height: 400px;
position: absolute;
}
#list img{
float:left;
}
#buttons{
position: absolute;/*参照父元素举行相对定位*/
height: 10px;
width: 100px;
z-index: 2;
bottom: 20px;
margin: auto;
left: 0;
right: 0;
}
#buttons span{
cursor: pointer;
display: inline-block;
border:1px solid #fff;
width: 10px;
height: 10px;
border-radius: 50%;
margin-right: 5px;
float: left;
}
#buttons .on{
background-color: #5c307d;
}
.arrow{
cursor: pointer;
line-height: 40px;
text-align: center;
font-size: 36px;
width: 40px;
height: 40px;
position: absolute;
z-index: 2;
margin:auto;
top:0;
bottom: 0;
background-color: #d8d9d8;
color: #ffffff;
text-decoration: none;
border-radius: 50%;
display: none;
}
.arrow:hover{
background-color: #b2afaf;
}
#container:hover .arrow{
display: inline-block;
}
#prev{
left: 20px;
}
#next{
right: 20px;
}
html代码:
<div id="container">
<div id="list" style="left:0px;">
<img src="1.jpg" alt="1">
<img src="2.jpg" alt="2">
<img src="3.jpg" alt="3">
<img src="4.jpg" alt=".4">
<img src="5.jpg" alt="5">
</div>
<div id="buttons">
<span index="1" class="on"></span>
<span index="2"></span>
<span index="3"></span>
<span index="4"></span>
<span index="5"></span>
</div>
<div style="clear: both;"></div>
<a href="javascript:;" id="prev" class="arrow"><</a>
<a href="javascript:;" id="next" class="arrow">></a>
</div>
第二步:给前一张,下一张添按钮增加事宜:
<script type="text/javascript">
//下一页
window.onload=function(){
var list=document.getElementById("list");//猎取相册div,便于挪动相册框的图片
var prev=document.getElementById('prev');//前一张图片按钮
var next=document.getElementById('next');//下一页按钮
next.onclick=function(){
if(!(parseInt(list.style.left)<=-4800)){//向凌驾第5张图片不能继承向右
list.style.left=parseInt(list.style.left)-1200+"px";
}
};
prev.onclick=function(){
if((parseInt(list.style.left)<0)){//向左凌驾第1张图片不能继承向左
list.style.left=parseInt(list.style.left)+1200+"px";
}
};
};
</script>
第三步:封装简化点击按钮事宜(js部份,其他没有转变)
<script type="text/javascript">
window.onload=function(){
var list=document.getElementById("list");//猎取相册div,便于挪动相册框的图片
var prev=document.getElementById('prev');//前一张图片按钮
var next=document.getElementById('next');//下一页按钮
//上一页,下一页点击按钮函数
function animate(offset){
var left=list.style.left;//图片位置
var leftOffset=parseInt(left);//图片偏移量
if (offset==-1200) {
if(!(leftOffset<=-4800)){//向凌驾第5张图片不能继承向右
left=(leftOffset+offset)+'px';
list.style.left=left;
}
return;
}
if (offset==1200) {
if((leftOffset<0)){//向左凌驾第1张图片不能继承向左
left=(leftOffset+offset)+"px";
list.style.left=left;
}
}
}
next.onclick=function(){
animate(-1200);
};
prev.onclick=function(){
animate(1200);
};
};
</script>
第四步:图片切换对应小按钮款式转变
<script type="text/javascript">
window.onload=function(){
var list=document.getElementById("list");//猎取相册div,便于挪动相册框的图片
var prev=document.getElementById('prev');//前一张图片按钮
var next=document.getElementById('next');//下一页按钮
var index=1;//默许小按钮为1
var buttons=document.getElementById("buttons").getElementsByTagName('span');
//上一页,下一页点击按钮函数
function animate(offset){
var left=list.style.left;//图片位置
var leftOffset=parseInt(left);//图片偏移量
if (offset==-1200) {
if(!(leftOffset<=-4800)){//向凌驾第5张图片不能继承向右
left=(leftOffset+offset)+'px';
list.style.left=left;
}
return;
}
if (offset==1200) {
if((leftOffset<0)){//向左凌驾第1张图片不能继承向左
left=(leftOffset+offset)+"px";
list.style.left=left;
}
}
}
//按钮款式转变函数
function showButton(){
for (var i = 0; i <buttons.length; i++) {
if (buttons[i].className=="on") {
buttons[i].className="";
break;
}
}
buttons[index-1].className="on";
}
next.onclick=function(){
if (index==5) {//假如小按钮已到了第五个小按钮,下一个小按钮切换回1
index=1;
}else{//不是第五个,就继承++
index+=1;
}
animate(-1200);
showButton();
};
prev.onclick=function(){
if (index==1) {//假如小按钮已到了第1个小按钮,上一个小按钮切换回5
index=1;
}else{//不是第1个,就继承--
index-=1;
}
animate(1200);
showButton();
};
};
</script>
第五步:图片无穷摆布切换
<script type="text/javascript">
window.onload=function(){
var list=document.getElementById("list");//猎取相册div,便于挪动相册框的图片
var prev=document.getElementById('prev');//前一张图片按钮
var next=document.getElementById('next');//下一页按钮
var index=1;//默许小按钮为1
var buttons=document.getElementById("buttons").getElementsByTagName('span');
//上一页,下一页点击按钮函数
function animate(offset){
var left=list.style.left;//图片位置
var leftOffset=parseInt(left);//图片偏移量
if (offset==-1200) {
if(!(leftOffset<=-4800)){//向凌驾第5张图片不能继承向右
left=(leftOffset+offset)+'px';
list.style.left=left;
}
if (leftOffset==-4800) {//凌驾第5张得时刻从新回到第一张
list.style.left=0+'px';
index=1;//更新一下按钮
}
return;
}
if (offset==1200) {
if((leftOffset<0)){//向左凌驾第1张图片不能继承向左
left=(leftOffset+offset)+"px";
list.style.left=left;
}
if (leftOffset==0) {//凌驾第1张得时刻从新回到第5张
list.style.left=-3600+'px';
index=5;//更新一下按钮
}
}
}
//按钮款式转变函数
function showButton(){
for (var i = 0; i <buttons.length; i++) {
if (buttons[i].className=="on") {
buttons[i].className="";
break;
}
}
buttons[index-1].className="on";
}
next.onclick=function(){
if (index==5) {//假如小按钮已到了第五个小按钮,下一个小按钮切换回1
index=1;
}else{//不是第五个,就继承++
index+=1;
}
animate(-1200);
showButton();
};
prev.onclick=function(){
if (index==1) {//假如小按钮已到了第1个小按钮,上一个小按钮切换回5
index=1;
}else{//不是第1个,就继承--
index-=1;
}
animate(1200);
showButton();
};
};
</script>
第六步:小按钮的点击事宜
<script type="text/javascript">
window.onload=function(){
var list=document.getElementById("list");//猎取相册div,便于挪动相册框的图片
var prev=document.getElementById('prev');//前一张图片按钮
var next=document.getElementById('next');//下一页按钮
var index=1;//默许小按钮为1
var buttons=document.getElementById("buttons").getElementsByTagName('span');
//上一页,下一页点击按钮函数
function animate(offset,jump="num"){
var left=list.style.left;//图片位置
var leftOffset=parseInt(left);//图片偏移量
if (offset==-1200&&jump=="num") {
if(!(leftOffset<=-4800)){//向凌驾第5张图片不能继承向右
left=(leftOffset+offset)+'px';
list.style.left=left;
}
if (leftOffset==-4800) {//凌驾第5张得时刻从新回到第一张
list.style.left=0+'px';
index=1;//更新一下按钮
}
return;
}
if (offset==1200&&jump=="num") {
if((leftOffset<0)){//向左凌驾第1张图片不能继承向左
left=(leftOffset+offset)+"px";
list.style.left=left;
}
if (leftOffset==0) {//凌驾第1张得时刻从新回到第5张
list.style.left=-3600+'px';
index=5;//更新一下按钮
}
return;
}
if (parseInt(jump)>0) {//向右跳转
var offsetjump=-1200*jump;
left=(leftOffset+offsetjump)+'px';
list.style.left=left;
return;
}
if (parseInt(jump)<0) {//向左跳转
var offsetjump=-1200*jump;
left=(leftOffset+offsetjump)+'px';
list.style.left=left;
return;
}
}
//按钮款式转变函数
function showButton(){
for (var i = 0; i <buttons.length; i++) {
if (buttons[i].className=="on") {
buttons[i].className="";
break;
}
}
buttons[index-1].className="on";
}
next.onclick=function(){
if (index==5) {//假如小按钮已到了第五个小按钮,下一个小按钮切换回1
index=1;
}else{//不是第五个,就继承++
index+=1;
}
animate(-1200);
showButton();
};
prev.onclick=function(){
if (index==1) {//假如小按钮已到了第1个小按钮,上一个小按钮切换回5
index=1;
}else{//不是第1个,就继承--
index-=1;
}
animate(1200);
showButton();
};
//为每一个小按钮绑定事宜
for (var i = 0; i <buttons.length; i++) {
buttons[i].onclick=function(){
var myIndex=parseInt(this.getAttribute('index'));//当前按钮下标
if(myIndex-index>0){//向右偏移
animate(-1200,myIndex-index);
index=myIndex;//更新按钮
showButton();
}else{
animate(1200,myIndex-index);
index=myIndex;//更新按钮
showButton();
}
}
}
};
</script>
第七步:优化小按钮(点击同一个按钮不触发事宜)
if (this.className=="on") {
return;
}
在buttoms循到场
第八步:给点击事宜加动画