zoukankan      html  css  js  c++  java
  • js练习图片轮播

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .container {
                position: relative;
                 751px;
                height: 455px;
            }
    
            .container .pic {
                position: absolute;
                left: 0px;
                top: 0px;
            }
    
            .slider-nav {
                bottom: 10px;
                height: 9px;
                position: absolute;
            }
    
            .slider-nav ul {
                line-height: 1;
            }
    
            .slider-nav li {
                background: #3e3e3e none repeat scroll 0 0;
                border-radius: 50%;
                color: #fff;
                cursor: pointer;
                display: inline-block;
                height: 9px;
                margin: 0 2px;
                overflow: hidden;
                text-align: center;
                 9px;
            }
    
            .slider-nav .slider-selected {
                background: #b61b1f none repeat scroll 0 0;
                color: #fff;
            }
    
            .slider-nav {
                height: 0;
                left: 110px;
                line-height: 0;
                text-align: center;
                top: 290px;
                 530px;
                font-size: 12px;
            }
    
            .slider-nav li {
                display: inline-block;
                height: 18px;
                line-height: 18px;
                 18px;
            }
    
            .slider-extra {
                position: absolute;
                z-index: 1000;
            }
        </style>
    </head>
    <body>
    <!--
    需求
        1.模仿京东做图片轮播
    -->
    <div class="container">
        <div id="allpic">
            <div class="pic" style="z-index: 5"><img src="img/1.jpg"></div>
            <div class="pic" style="z-index: 4"><img src="img/2.jpg"></div>
            <div class="pic" style="z-index: 3"><img src="img/3.jpg"></div>
            <div class="pic" style="z-index: 2"><img src="img/4.jpg"></div>
            <div class="pic" style="z-index: 1"><img src="img/5.jpg"></div>
        </div>
        <div class="slider-extra">
            <ul class="slider-nav" id="ulid">
                <li class="slider-selected">1</li>
                <!-- slider-selected 表示当前选中的颜色-->
                <li class="slider-item">2</li>
                <li class="slider-item">3</li>
                <li class="slider-item">4</li>
                <li class="slider-item">5</li>
            </ul>
        </div>
    </div>
    <script type="application/javascript">
        //code here
    
        //1.图片轮播
    
        var currPic = 0;
        var taskid = 0;
    
        var allpic = document.getElementById("allpic");
        var pics = getNodeTypeEq1(allpic);
    
        //2.数字跟着图片变化
        var lis = getNodeTypeEq1(document.getElementById("ulid"));
    
        //显示一张图片
        function changePic(pointAt) {
            if(pointAt != null){
                currPic = pointAt;
            }
    
            for (var i = 0; i < pics.length; i++) {
                if (currPic == i) {
                    pics[i].style.zIndex = 1;
                    lis[i].className = "slider-selected";
                } else {
                    pics[i].style.zIndex = 0;
                    lis[i].className = "slider-item";
                }
            }
            currPic++;
            if (currPic == 5) {
                currPic = 0;
            }
        }
        //每隔两秒,变换一次图片
        taskid = window.setInterval(changePic, 2000)
    
        //过滤掉文本结点、属性结点
        function getNodeTypeEq1(fatherNodeList) {
            var container = [];
            var fnl = fatherNodeList.childNodes;
            for (var i = 0; i < fnl.length; i++) {
                //结点的nodeType表示结点的类型:1为元素结点 2为属性结点 3为文本结点
                if (fnl[i].nodeType == 1) {
                    container.push(fnl[i]);
                }
            }
            return container;
        }
    
        //3.指向下标以显示图片
        //1)页面加载完成,给所有li绑定事件
        window.onload = function () {
            for (var i = 0; i < lis.length; i++) {
            //为每个节点对象添加onmouseover事件 lis[i].onmouseover
    = function () { //2)停止图片轮播 window.clearInterval(taskid); //3)显示指向图片
              //this表示鼠标所指的节点对象 changePic(this.innerText - 1); } //4.鼠标移开,继续轮播 //为每个对象节点添加onmouseout事件
            lis[i].onmouseout = function(){ taskid = window.setInterval(changePic, 2000); } } } </script> </body> </html>

    11

  • 相关阅读:
    使用shell脚本备份PostgreSql
    java使用stream做二维数据统计,把List<Map>转换为Map<String,Map<String,Integer>>
    使用idea构建JavaFX项目
    SpringBoot(三) ---- SpringBoot启动加载器
    idea设置大全(三)------变量高亮设置
    延迟初始化占位类模式
    ThreadPoolExecutor构造参数分析
    postgresql插入或批量插入出现冲突时的处理方法
    java函数式接口
    MyBatis(二)批量插入insert语句拼接方式
  • 原文地址:https://www.cnblogs.com/cqming/p/10827691.html
Copyright © 2011-2022 走看看