一个简单的图片轮播。。

开始的时候使用js更换背景图片的方式实现,由于要支持ie8,ie8不能支持background-size。于是借助img标签来同一图片的大小。用相对定位来控制不同图片的展现。
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>青海省</title>
    <link rel="stylesheet" href="newe.css">
    <!--[if IE 8]>
    	<style>
		.nav-circle{
			 background: url("gray_yuan.png");
		}
		.nav-circle-active{
			background: url("white_yuan.png");
		}
		</style>
    <![endif]-->
</head>
<body>
<div class="main">
    <div  id ="back" >
        <div id="img-all">
            <div class="back-img">
                <img src="bei.jpg" alt="">
            </div>
            <div class="back-img">
                <img src="bei2.jpg" alt="">
            </div>
            <div class="back-img">
                <img src="bei3.jpg" alt="">
            </div>
        </div>
        <div id="top-nav" >
            <span class="nav-circle nav-circle-active" id="0"></span>
            <span class="nav-circle" id="1"></span>
            <span class="nav-circle" id="2"></span>
        </div>
    </div>
</div>
<script>
window.onload = function(){
    addEvent(document.getElementById("0"),"click",change_first);
    addEvent(document.getElementById("1"),"click",change_second);
    addEvent(document.getElementById("2"),"click",change_third);
    setInterval(function () {
        change();
    },5000);
};
function change_first(){
    var margin = parseInt(document.getElementById("img-all").style.left);
    if(isNaN(margin)){
        margin = 0;
    }
    if(margin == -1350){
        move_circle();
        move_img(margin,50,0);
    }else if(margin == -2700){
        move_img(margin,100,0);
    }
}
function change_second(){
    var margin = parseInt(document.getElementById("img-all").style.left);
    if(isNaN(margin)){
        margin = 0;
    }
    if(margin == 0){
        move_img(margin,-50,-1350);
    }else if(margin == -2700){
        move_circle();
        move_img(margin,50,-1350);
    }
}
function change_third(){
    var margin = parseInt(document.getElementById("img-all").style.left);
    if(isNaN(margin)){
        margin = 0;
    }
    if(margin == 0){
        move_circle();
        move_img(margin,-100,-2700);
    }else if(margin == -1350){
        move_img(margin,-50,-2700);
    }
}
function change(){
    var margin = parseInt(document.getElementById("img-all").style.left);
    if(isNaN(margin)){
        margin = 0;
    }
    if(margin == 0){
        move_img(margin,-50,-1350);
    }else if(margin == -1350){
        move_img(margin,-50,-2700);
    }else if(margin == -2700){
        move_img(margin,100,0);
    }
}
function move_img(margin,speed,end){        /*移动图片用  开始 速度 结束*/
    move_circle();
    var temp = setInterval(function(){
        margin += speed;
        document.getElementById("img-all").style.left = margin + "px";
        if(margin == end){
            clearInterval(temp);
        }
    },20);
}
function move_circle() {
    var nav = getClassNames("nav-circle","span");
    for(var i = 0; i < 3; i++){
        if(nav[i].className == 'nav-circle nav-circle-active'){
            nav[i].className = 'nav-circle';
            if(i == 2){
                i = 0;
                nav[i].className = 'nav-circle nav-circle-active';
                break;
            }else{
                nav[i+1].className = 'nav-circle nav-circle-active';
                break;
            }
        }
    }
}
function addEvent(obj,type,handle){
    try{  // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本
        obj.addEventListener(type,handle,false);
    }catch(e){
        try{  // IE8.0及其以下版本
            obj.attachEvent('on' + type,handle);
        }catch(e){  // 早期浏览器
            obj['on' + type] = handle;
        }
    }
}
function getClassNames(classStr,tagName){
    if (document.getElementsByClassName) {
        return document.getElementsByClassName(classStr)
    }else {
        var nodes = document.getElementsByTagName(tagName),ret = [];
        for(var i = 0; i < nodes.length; i++) {
            if(hasClass(nodes[i],classStr)){
                ret.push(nodes[i])
            }
        }
        return ret;
    }
}
function hasClass(tagStr,classStr){
    var arr=tagStr.className.split(/\s+/ ); /* //这个正则表达式是因为class可以有多个,判断是否包含  */
    for (var i=0;i<arr.length;i++){
        if (arr[i]==classStr){
            return true ;
        }
    }
    return false ;
}
</script>
</body>
</html>
newe.css文件中的内容
html,body{
    margin: 0;
    padding: 0;
    font-size: 14px;
    font-family: "MicroSoft YaHei";
}
img{
    border:none;/*ie9下被a标签包裹的img会有一个2像素宽的边框*/
}
.main{
    min-width: 1100px;
}
#back{
    width: 1350px;
    height: 330px;
    position: relative;
    overflow: hidden;
}
#img-all{
    width:4050px;
    height: 330px;
    position: absolute;
    left: 0;
}
.back-img{
    width:1350px;
    height:330px;
    background: white;
    float: left;
   right:100px;
}
.back-img img{
    width:1350px;
    height: 330px;
}
#top-nav{
    position: absolute;
    height: 30px;
    width: 100px;
    color: #fff;
    bottom: 5px;
    left:600px;
}
.nav-circle{
    display: inline-block;
    width: 16px;
    height:16px;
    border-radius: 8px;
    margin: 0 5px;
    background: rgba(0,0,0,0.2);
    cursor: pointer;
}
.nav-circle-active{
    display: inline-block;
    width: 16px;
    height:16px;
    border-radius: 8px;
    margin: 0 5px;
    cursor: pointer;
    background: #fff;
}
css样式表优先级。。看在多次不如试一次


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值