zoukankan      html  css  js  c++  java
  • JS“轮播图”

    轮播图其实不难
    主要运用了定时器、循环语句及鼠标事件
    下面来看一下代码

    <body>
    <div id="main">
    <ul id="pic">
    <li><img src="img/1.jpg" alt="dnf1"/></li>
    <li><img src="img/2.jpg" alt="dnf2"/></li>
    <li><img src="img/3.jpg" alt="dnf3"/></li>
    <li><img src="img/4.jpg" alt="dnf4"/></li>
    <li><img src="img/5.jpg" alt="dnf5"/></li>
    <li><img src="img/6.jpg" alt="dnf6"/></li>
    <li><img src="img/7.jpg" alt="dnf7"/></li>
    </ul>

    //首先,在无序列表中插入图片,在css中设置好样式和初始化

    <ol id="tic">
    <li class="on">1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    </ol>

    //在有序列表中写入序号,以便后面鼠标事件的执行,同样需要设置初始化

    </div>
    <script>
    var pic=document.getElementById("pic");
    var tic=document.getElementById("tic").getElementsByTagName("li");
    var main=document.getElementById("main") //声明函数或许值
    var i=0; //设置 i 的初始值为0
    var timer; // 创建一个timer
    timer=setInterval(play,1000); //**给timer加上定时器的属性,这里为每1000毫秒执行一次play事件**
    function play (){
    i++;
    if(i>=tic.length){
    i=0;
    }
    change(i);
    }
    function change (num){
    pic.style.marginLeft= -450*num+"px"; //**每次执行时,图片移动的距离**
    for(var j=0;j<tic.length;j++){
    tic[j].className="";
    }
    tic[num].className="on"; //**给有序列表赋上样式“on”**
    }
    main.onmouseover=function(){ //**鼠标移入事件**
    clearInterval(timer); //**清楚定时器**
    }
    main.onmouseout=function(){ //**鼠标移出事件**
    timer=setInterval(play,1000); //**启动定时器**
    }
    for(let k=0;k<tic.length;k++){
    tic[k].onmouseover=function(){
    change(k);
    i=k;
    }
    }

    </script>
    </body>

    **附上源代码:**


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>轮播图</title>
    <style>
    body,ul,ol,li,div,img,font,{
    margin: 0;
    padding: 0;
    }
    li{
    list-style: none;
    display: block;
    cursor: pointer;
    }
    img{
    display: block;
    }
    #main{

    450px;
    height: 270px;
    overflow: hidden;
    margin: 0 auto;
    position: relative;

    }
    #pic{
    3150px;
    height: 270px;
    position: absolute;
    top:-15px;
    left: -40px;

    }
    #pic li{
    float: left;
    }
    #tic{
    180px;
    position: absolute;
    bottom: 0px;
    right: 0px;
    }
    #tic li{
    display:inline-block;
    15px;
    height: 12px;
    font-size: 8px;
    line-height: 12px;
    margin-left: 10px;
    text-align: center;
    background-color:#696969;
    float: left;
    border-radius: 3px;
    color: white;
    }
    #tic .on{
    background-color: #EC4828;
    }
    </style>
    </head>
    <body>
    <div id="main">
    <ul id="pic">
    <li><img src="img/1.jpg" alt="dnf1"/></li>
    <li><img src="img/2.jpg" alt="dnf2"/></li>
    <li><img src="img/3.jpg" alt="dnf3"/></li>
    <li><img src="img/4.jpg" alt="dnf4"/></li>
    <li><img src="img/5.jpg" alt="dnf5"/></li>
    <li><img src="img/6.jpg" alt="dnf6"/></li>
    <li><img src="img/7.jpg" alt="dnf7"/></li>
    </ul>
    <ol id="tic">
    <li class="on">1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    </ol>
    </div>
    <script>
    var pic=document.getElementById("pic");
    var tic=document.getElementById("tic").getElementsByTagName("li");
    var main=document.getElementById("main")
    var i=0;
    var timer;
    timer=setInterval(play,1000);
    function play (){
    i++;
    if(i>=tic.length){
    i=0;
    }
    change(i);
    }
    function change (num){
    pic.style.marginLeft= -450*num+"px";
    for(var j=0;j<tic.length;j++){
    tic[j].className="";
    }
    tic[num].className="on";
    }
    main.onmouseover=function(){
    clearInterval(timer);
    }
    main.onmouseout=function(){
    timer=setInterval(play,1000);
    }
    for(let k=0;k<tic.length;k++){
    tic[k].onmouseover=function(){
    change(k);
    i=k;
    }
    }

    </script>
    </body>
    </html>

  • 相关阅读:
    ZJU_1145 OR POJ_1100 Dreisam Equations
    数据结构基础之队列
    The New Villa
    Mission Impossible 6
    数据结构基础之栈
    POJ_1185_炮兵阵地 dp+状态压缩
    (转载)Dig命令的用法
    (转载)服务发现系统etcd介绍
    golang 导入包
    1.4方程求根之弦截法
  • 原文地址:https://www.cnblogs.com/fushuxin/p/10098850.html
Copyright © 2011-2022 走看看