zoukankan      html  css  js  c++  java
  • JavaScript技巧——轮播图

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>当当网首页轮播图-By小黑</title>
        <style>
            * {
                padding: 0;
                margin: 0;
                list-style: none;
            }
            
            #wrap {
                margin: 50px auto;
                /* 图片的宽和高 */
                width: 800px;
                height: 330px;
                /* 超出的影藏 */
                overflow: hidden;
                position: relative;
            }
            
            #list {
                position: absolute;
                bottom: 15px;
                right: 250px;
            }
            
            #list li {
                float: left;
                margin-right: 15px;
                cursor: pointer;
                width: 23px;
                height: 23px;
                line-height: 23px;
                text-align: center;
                background: #ADA79D;
                color: #FFF;
                border-radius: 50%;
            }
            
            #list .on {
                background: red;
            }
            /* 左箭头有箭头 */
            
            #bar_left,
            #bar_right {
                width: 33px;
                height: 80px;
                line-height: 80px;
                position: absolute;
                top: 130px;
                background: rgba(0, 0, 0, 0.3);
            }
            
            #bar_left {
                left: -33px;
            }
            
            #bar_right {
                right: -35px;
            }
            /*下面利用伪元素实现左侧和右侧的小箭头*/
            
            #bar_left:after,
            #bar_left:before,
            #bar_right:before,
            #bar_right:after {
                content: "";
                border-top: 15px solid transparent;
                border-bottom: 15px solid transparent;
                position: absolute;
                top: 25px;
            }
            /*左边箭头*/
            
            #bar_left:before {
                border-left: 15px solid transparent;
                border-right: 15px solid #FFF;
                right: 10px;
            }
            
            #bar_left:after {
                border-left: 15px solid transparent;
                border-right: 15px solid rgba(0, 0, 0, 0.3);
                right: 7px;
            }
            /*右边箭头*/
            
            #bar_right:before {
                border-right: 15px solid transparent;
                border-left: 15px solid #FFF;
                left: 10px;
            }
            
            #bar_right:after {
                border-right: 15px solid transparent;
                border-left: 15px solid rgba(0, 0, 0, 0.3);
                left: 7px;
            }
            
            #wrap:hover #bar_left {
                left: 0;
                cursor: pointer;
                transition: left 0.5s;
            }
            
            #wrap:hover #bar_right {
                /* display: block; */
                right: 5px;
                cursor: pointer;
                transition: right 0.5s;
            }
            
            .tex {
                margin: 20px auto;
                width: 400px;
            }
            
            .tex ul li {
                list-style-type: circle;
                color: red;
                font-weight: bold;
                margin-bottom: 5px;
            }
        </style>
    </head>
    
    <body>
        <div id="wrap">
            <ul id="pic">
                <li><img src="images/dang1.jpg" alt=""></li>
                <li><img src="images/dang2.jpg" alt=""></li>
                <li><img src="images/dang3.jpg" alt=""></li>
                <li><img src="images/dang4.jpg" alt=""></li>
                <li><img src="images/dang5.jpg" alt=""></li>
                <li><img src="images/dang6.jpg" alt=""></li>
                <li><img src="images/dang7.jpg" alt=""></li>
                <li><img src="images/dang8.jpg" alt=""></li>
            </ul>
            <div id="bar_left"></div>
            <div id="bar_right"></div>
            <ol id="list">
                <li class="on">1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
            </ol>
        </div>
        <div class="tex">
            <ul>
                <li>功能如下:</li>
                <li>图片会自动播放,鼠标放上面会暂停播放</li>
                <li>点击左右出现的箭头可以切换到上一张/下一张图片</li>
                <li>点击序号会跳转到对应图片</li>
            </ul>
        </div>
        <script>
            var wrap = document.getElementById('wrap');
            var pics = document.getElementById('pic');
            var lists = document.getElementById('list').getElementsByTagName('li');
            var point_l = document.getElementById('bar_left');
            var point_r = document.getElementById('bar_right');
            var index = 0;
            var counter = null;
    
            function change() { //计时器
                counter = setInterval(function() {
                    index++;
                    if (index === lists.length) {
                        index = 0;
                    }
                    img(index);
                }, 2000)
            }
            change();
    
            function img(curIndex) { //切换图片
                for (var i = 0; i < lists.length; i++) {
                    if (curIndex === i) {
                        lists[i].className = 'on';
                    } else {
                        lists[i].className = '';
                    }
                }
                index = curIndex;
                pics.style.marginTop = -330 * curIndex + 'px'; //图片上移
                wrap.οnmοuseοver = function() { //鼠标放到图片上时图片停止播放
                    pics.style.cursor = "pointer";
                    clearInterval(counter); //清除计时器
                }
                pics.οnmοuseοut = change;
            }
            //鼠标放到指定序号切换到指定图片
            for (var i = 0; i < lists.length; i++) {
                lists[i].id = i;
                lists[i].οnmοuseοver = function() {
                    img(this.id);
                    this.className = 'on';
                }
            }
            //当鼠标放在箭头上时,点击箭头切换到下一张图片
            point_l.οnmοusedοwn = function() { //点击左边箭头
                if (index <= 0) {
                    index = lists.length;
                }
                img(index - 1);
            }
            point_r.οnmοusedοwn = function() { //点击右边箭头
                if (index >= lists.length - 1) {
                    index = -1;
                }
                img(index + 1);
            }
        </script>
    </body>
    
    </html>
  • 相关阅读:
    vs2015+opencv3.3.1 +Eigen 3.3.4 c++实现 薄膜插值 泊松图像编辑(v=0||Δf=0)
    vs2015+opencv3.3.1 实现 c++ 双边滤波器(Bilateral Filter)
    vs2015+opencv3.3.1 实现 c++ 彩色高斯滤波器(Gaussian Smoothing, Gaussian Blur, Gaussian Filter)
    vs2015+opencv3.3.1 实现 c++ 灰度高斯滤波器
    vs2015+opencv3.3.1 实现 c++ 直方图均衡化
    函数形参为基类数组,实参为继承类数组,下存在的问题------c++程序设计原理与实践(进阶篇)
    函数返回值string与返回值bool区别------c++程序设计原理与实践(进阶篇)
    (c++11)随机数------c++程序设计原理与实践(进阶篇)
    实现求解线性方程(矩阵、高斯消去法)------c++程序设计原理与实践(进阶篇)
    Centos ATI 显卡安装,“LCD 信号超出范围” 解决方法
  • 原文地址:https://www.cnblogs.com/zhilili/p/12802604.html
Copyright © 2011-2022 走看看