简单的图片轮播器(二):以前最常见的图片轮播

图片轮播(二)

这是和之前的图片轮播器(地址)差不多,效果也是大同小异,主要用的都是一个简单的渐变框架,大家可以看看区别

效果图:

图片轮播二

布局不多说,基本思路还是和上次的一样的,点击下面的按钮,改变按钮就的样式,图片一开始就向下堆叠,用绝对布局点击的时候只要把只要修改top值就可以了


.html代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>仿淘宝幻灯片上下滑动效果</title>
        <link rel="stylesheet" type="text/css" href="css/tuPianLunHuan2.css"/>
        <script type="text/javascript" src="js/tuPianLunHuan2.js"></script>
    </head>
    <body>
        <div class="LunBo" id="LunBo">
            <ol>
                <li class="active">1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
            </ol>
            <ul>
                <li><a href="javascript:;"><img src="img/1.jpg" alt="广告一"/></a></li>
                <li><a href="javascript:;"><img src="img/2.jpg" alt="广告二"/></a></li>
                <li><a href="javascript:;"><img src="img/3.jpg" alt="广告三"/></a></li>
                <li><a href="javascript:;"><img src="img/4.jpg" alt="广告四"/></a></li>
                <li><a href="javascript:;"><img src="img/5.jpg" alt="广告五"/></a></li>
                <li><a href="javascript:;"><img src="img/6.jpg" alt="广告六"/></a></li>
                <li><a href="javascript:;"><img src="img/7.jpg" alt="广告七"/></a></li>
            </ul>
        </div>
    </body>
</html>

css代码

*{
    margin: 0;
    padding: 0;
}
body{
    background: grey;
}
#LunBo{
    width:600px; 
    height:300px;
    position: relative; 
    margin:0 auto;
    margin-top: 100px;
    overflow:hidden;
}
.active{
    width: 34px;
    height: 34px;
    background: #feb338;
    color: white;
    filter:alpha(opacity:100);
    opacity:1;
}
ol{
    list-style:none;
    position:absolute;
    bottom:10px;
    right:10px;
    z-index:200;
    font-size: 0;
}
/*这里使用display:inline-block,因为float不能使用vertical-align:bottom下对齐;
 * display:inline-block两个元素之间会默认有一个空格哦,你给父级div加上font-size:0
 * 就可以避免的,要设置字体大小可以在子元素里再设置*/
ol li{
    width:30px;
    height:30px;
    margin:2px;
    /*float:left;*/
    vertical-align:bottom;
    display: inline-block;
    background:#f8efca;
    border: 2px solid #d1a168;
    filter:alpha(opacity:50); 
    opacity:0.5;
    color: #bc7e47;
    line-height: 30px;
    font-size: 20px;
    text-align: center;
    font-weight: bold;
    cursor: pointer;
}
ul{
    /*height:1500px;
    width: 600px;*/
    position: absolute;
}
ul li{
    list-style: none;
    height: 300px;
}   
ul li img{
    height: 300px;
    width: 600px;    
}

js部分代码

window.onload = function(){
    var oDiv = document.getElementById('LunBo');
    var oOl = oDiv.getElementsByTagName('ol')[0];
    var aBtnLi = oOl.getElementsByTagName('li');
    var oUl = oDiv.getElementsByTagName('ul')[0];
    var aPLi = oUl.getElementsByTagName('li');

    var nowIndex = 0;
    for(var i=0; i<aBtnLi.length; i++){
        aBtnLi[i].index = i;
        aBtnLi[i].onclick = function(){
            nowIndex = this.index;
            tab();
        }
    }
    function tab(){
        for(var j=0; j<aBtnLi.length; j++){
            aBtnLi[j].className = '';
        }
        aBtnLi[nowIndex].className = 'active';

//          oUl.style.top = -300*nowIndex+'px';
        move(oUl, {top:-300*nowIndex});
    }

    //这里为了显示效果,设置轮播时间为1秒
    var timer = setInterval(next, 1000);
    oUl.onmouseover = function(){
        clearInterval(timer);
    };

    oUl.onmouseout = function(){
        timer = setInterval(next, 1000);
    };
    //自动轮换下一张图片函数
    function next(){
        nowIndex++;
        if(nowIndex==aBtnLi.length){
            nowIndex = 0;
        }
        tab();
    }   
}

//运动框架,,,实例move(oDiv, {width:100, height:200, function (){move(oUl, {opacity:1})});
function move(obj,json, funEnd){
    //保证只有一个定时器
    clearInterval(obj.timer);

    obj.timer=setInterval(function(){
        var bStop = true;           //假设所有值都已经到了目标值
        for(var attr in json){
            var cur=0;         
            if(attr=='opacity'){
                //获取非行间样式css的透明度
    cur=Math.round(parseFloat(getStyle(obj,attr))*100);   
            }else{
                cur=parseInt(getStyle(obj,attr));
            }
            //渐变缓冲,
            var speed=(json[attr]-cur)/7;
            //取整
            speed=speed>0?Math.ceil(speed):Math.floor(speed); 

            if(cur!=json[attr]){            //有一个值不相等就变成false
                bStop = false;        
            }
            if(attr=='opacity'){
    //              设置透明度
                obj.style.opacity=(cur+speed)/100;                 
                obj.style.filter='alpha(opacity:'+cur+speed+')';             
            }else{
                //这里用来设置left的
                var cur2 = cur+speed;
                obj.style.filter='alpha(opacity:'+cur2+')';    //兼容<=ie8               
            }      
        }
        if(bStop){
            clearInterval(obj.timer);
            if(funEnd){
                funEnd();
            }           
        }
    },30);  
}; 

源代码


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值