• 移动版轮播图


    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>新型轮播图</title>
    <link rel="stylesheet" href="index.css">

    *{
    margin:0px;
    padding: 0px;

    }

    .lunbo{
    1000px;
    height: 400px;
    border: 2px solid black;
    margin:20px auto;
    position: relative;
    overflow: hidden;
    }

    .nav-bar{
    90px;
    height: 20px;
    /*background-color: pink;*/
    text-align: center;
    position: absolute;
    bottom: 20px;
    right: 20px;
    z-index: 1;
    }
    .nav-bar .nav-span{
    20px;
    height: 20px;
    display: inline-block;
    background-color: black;
    border-radius: 10px;
    }
    .nav-bar .nav-span.selected{
    background-color: white;
    }

    /*这个三个模块的承载体*/
    .nav-father{
    3000px;
    height: 400px;
    /*background-color: red;*/

    transition: all 2s;


    }

    .nav-child{
    1000px;
    height: 400px;
    float: left;
    }

    </head>

    <body>
    <!-- 1.新建一个轮播div -->
    <div class="lunbo">

    <div class="nav-bar">
    <span class="nav-span selected" data-num = "0px"></span>
    <span class="nav-span" data-num = "-1000px"></span>
    <span class="nav-span" data-num = "-2000px"></span>
    </div>

    <!-- 小页面的承载体 -->
    <div class="nav-father">
    <div class="nav-child" style="background-color: pink;"></div>
    <div class="nav-child" style="background-color: skyblue;"></div>
    <div class="nav-child" style="background-color: orange;"></div>

    </div>

    </div>

    <script>

    function time(){

    //每次获得当前的selected,让下一个标签设置为selected
    var selected = document.querySelector(".selected");
    selected.className = "nav-span";
    //让下一个兄弟节点变为selected
    if(selected.nextElementSibling != null){
    selected.nextElementSibling.className = "nav-span selected";
    //获得selected.nextElementSibling.data-num
    var number = selected.nextElementSibling.getAttribute("data-num");

    var father = document.querySelector(".nav-father");
    father.style.transform = "translate("+ number+",0px)";


    }else{
    selected.parentNode.firstElementChild.className = "nav-span selected";

    //获得selected.nextElementSibling.data-num
    var number = selected.parentNode.firstElementChild.getAttribute("data-num");
    var father = document.querySelector(".nav-father");
    father.style.transform = "translate("+ number+",0px)";
    }

    }

    //定时器
    //(1)每过4秒调用一次
    //(2)每次首先获得当前的selected

    var timer = setInterval(time,4000);


    // 点击
    //(1)找到所有的nav-span
    var SpanArrays = document.querySelectorAll(".nav-span");
    //(2)设置点击事件
    for(var i = 0;i< SpanArrays.length;i++){

    SpanArrays[i].onclick=function(){


    clearInterval(timer);
    //(3)让自己变成selected,让其他的变成正常
    for(var j =0;j<SpanArrays.length;j++){
    //还原成正常的
    SpanArrays[j].className = "nav-span";

    }
    //(4)将点击的设置为 nav-span selected
    this.className = "nav-span selected";

    //换图片。。。指的是transform-translate
    //找到nav-father
    var father = document.querySelector(".nav-father");
    //平移数值
    var number = this.getAttribute("data-num");

    father.style.transform = "translate("+ number+",0px)";

    timer = setInterval(time,4000);
    }
    }

    </script>

  • 相关阅读:
    前端方便面
    在页面未加载完之前显示loading动画
    块级格式化上下文(BFC)
    css预编译--sass进阶篇
    IPhoneX网页布局简介
    kotlin回调函数作为参数block: T.() -> Unit和block: () -> Unit的区别
    flutter显示参数提示的快捷键
    LinuxC线程pthread线程同步进程同步-互斥量、信号量、条件变量、读写锁、文件锁
    flutter实现页面跳转的两种路由
    android开发FontMetrics的理解
  • 原文地址:https://www.cnblogs.com/cntt/p/6527353.html
Copyright © 2020-2023  润新知