zoukankan      html  css  js  c++  java
  • 简易轮播图

    直接贴代码:

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>轮播图V3.0版</title>
    <link rel="stylesheet" href="css.css" type="text/css">
    </head>
    
    <body>
    <div id="slide">
        <ul class="slide_img" id="slide_img">
            <li><img src="images/1.jpg" /></li>
            <li><img src="images/2.jpg" /></li>
            <li><img src="images/3.jpg" /></li>
            <li><img src="images/4.jpg" /></li>
            <li><img src="images/5.jpg" /></li>
        </ul>
        <ul class="slide_btn" id="slide_btn">
            <li class="btn_active"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <div id="btn_pre"><a></a></div>
        <div id="btn_next"><a></a></div>
    </div>
    </body>
    <script src="slide.js" type="text/javascript" ></script>
    </html>
    HTML
    /* 样式重置 */
    body,div,ul,ul li,img{
        margin:0;
        padding:0;
    }
    body{
        background: #000;
    }
    
    img{
        border:none;
    }
    
    li{
        list-style: none;
    }
    
    /* 主要样式 */
    #slide{
        width:670px;
        height:240px;
        margin:100px auto;
        position:relative;
        background:#fff;
        overflow: hidden;
    }
    .slide_img{
        position: absolute;
        width:3350px;
        height:240px;
        top:0;
        left:0;
    }
    .slide_btn{
        position: absolute;
        width:150px;
        height:30px;
        top:210px;
        left:520px;
    }
    
    .slide_img li{
        float:left;
    }
    .slide_btn li{
        display: block;
        line-height: 30px;
        color:#999;
        float:left;
        margin-right:6px;
    }
    .slide_btn .btn_active{
        color:#920;
    }
    
    /* 左右切换按钮 */
    #btn_pre a,#btn_next a{
        width:25px;
        height:35px;
        z-index: 2;
        position:absolute;
    }
    #btn_pre a{
        background:url(images/pre_next.png) 0 0;
        left:0px;
        top:102px;
    }
    
    #btn_next a{
        background:url(images/pre_next.png) 0 -35px;
        left:645px;
        top:102px;
    }
    CSS
    功能介绍:
    1.加入了自动播放
    2.加入了鼠标移入关闭定时器,移出开启定时器
    3.解决了移出鼠标之后不连续播放的bug
    4.加入了左右切换功能
    5.加入了运动划入划出
    BUG:
    在最后一张图向第一张图切换时,会出现短暂空白
    */
    var oDiv=document.getElementById('slide');
    var oUl1=document.getElementById('slide_img');
    var oUl2=document.getElementById('slide_btn');
    var aImg=oUl1.getElementsByTagName('li');
    var aBtn=oUl2.getElementsByTagName('li');
    
    var oBtnL=document.getElementById('btn_pre').getElementsByTagName('a')[0];
    var oBtnR=document.getElementById('btn_next').getElementsByTagName('a')[0];
    
    for(var i=0;i<aBtn.length;i++){
    
    }
    
    
    var timer=null;
    
    var timer_auto=null;
    
    var speed=null;
    
    var j=0;
    
    
    slide(aBtn,aImg);
    autoSlide(aBtn,aImg);
    
    //轮播图主函数
    function slide(btns,imgs){
        for(var i=0;i<btns.length;i++){
            btns[i].index=i;
            btns[i].onmouseover=function(){
                overslide(this,btns,imgs);
            };
        }
    }
    
    //鼠标触发切换
    function overslide(that,btns,imgs){
        clearStyle(btns);
        that.style.color="#920";
        move(oUl1,-(that.index)*imgs[0].offsetWidth);
        //获取索引值
        j=that.index+1;
    }
    
    //向左点击切换
    oBtnR.onclick=function(){
        j++;
        if(j>=aBtn.length) {
            oUl1.style.left=aImg[0].offsetWidth+'px';
            j=0;
        }
        clearStyle(aBtn);
        aBtn[j].style.color="#920";
        move(oUl1,-j*aImg[0].offsetWidth);
    }
    
    //向右点击切换
    oBtnL.onclick=function(){
        j--;
        if(j<=-1) {
            oUl1.style.left=-aImg[0].offsetWidth*5+'px';
            j=4;
        }
        document.title=j;
        clearStyle(aBtn);
        aBtn[j].style.color="#920";
        move(oUl1,-j*aImg[0].offsetWidth);
    }
    
    //鼠标移入时关闭定时器
    oDiv.onmouseover=function(){
        clearInterval(timer_auto);
    }
    
    //鼠标移除时开始定时器
    oDiv.onmouseout=function(){
        autoSlide(aBtn,aImg);
    }
    
    //自动播放功能函数
    function autoSlide(btns,imgs){
        clearInterval(timer_auto);
        timer_auto=setInterval(function(){
            clearStyle(btns);
            if(j>=btns.length) {
                oUl1.style.left=imgs[0].offsetWidth+'px';
                j=0;
            }
            btns[j].style.color="#920";
            move(oUl1,-j*imgs[0].offsetWidth);
            j++;
        },3000);
    }
    
    //清理样式
    function clearStyle(btns){
        for(var i=0;i<btns.length;i++){
            btns[i].style.color="#999";
        };
    }
    
    
    //运动函数
    function move(obj,target){
        clearInterval(timer);
        if(obj.offsetLeft<=target){
            speed=67;
        }else{
            speed=-67;
        }
        timer=setInterval(function(){
            document.title=obj.offsetLeft;
            if(obj.offsetLeft==target) {
                clearInterval(timer);
            }else{
                obj.style.left=obj.offsetLeft+speed+'px';
            }
        },30)
    }
    JS
  • 相关阅读:
    Python 极简教程(十)集合 set
    Python 极简教程(九)元组 tuple
    Python 极简教程(七)列表 list
    Python 极简教程(八)字符串 str
    DevOps实践之一:基于Docker构建企业Jenkins CI平台
    kubernetes实践之一:kubernetes二进制包安装
    Linux挖矿病毒 khugepageds详细解决步骤
    kubernetes实践之五:深入理解Service及内部DNS搭建
    kubernetes实践之四:深入理解控制器(workload)
    kubernetes实践之三:深入理解Pod对象
  • 原文地址:https://www.cnblogs.com/gresic/p/3386838.html
Copyright © 2011-2022 走看看