• jquery: update carousel logic & animate


    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Carousel</title>
        <link rel="stylesheet" href="../css/reset.css">
    </head>
    <style>
        .box-content {
            width: 600px;
            margin: 40px auto;
        }
    
        .carousel-show {
            margin-bottom: 20px;
        }
    
        .carousel-show .item-list,
        .carousel-show .item-list .banner-position {
            position: relative;
            width: 600px;
            height: 400px;
            overflow: hidden;
        }
    
        .carousel-show .item-list li {
            display: none;
            position: absolute;
            top: 0;
            left: 0;
            width: 600px;
            height: 400px;
            background-color: #ddd;
        }
    
        .carousel-show .item-list img {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            height: 400px;
            margin: auto;
    
        }
    
        .carousel-wrap {
            position: relative;
            width: 600px;
            height: 80px;
        }
    
        .carousel-wrap .current {
            position: absolute;
            left: 0;
            top: -5px;
            width: 112px;
            height: 85px;
            background: url("../images/carousel-cur.png") no-repeat center center;
            cursor: pointer;
            z-index: 103;
        }
    
        .carousel-container {
            position: relative;
            width: 600px;
            height: 80px;
            text-align: center;
            overflow: hidden;
        }
    
        .carousel-container .carousel-list {
            position: absolute;
            width: 800px;
            height: 80px;
            left: 0;
        }
    
        .carousel-container .carousel-list li {
            position: relative;
            float: left;
            cursor: pointer;
            width: 112px;
            height: 80px;
            margin-right: 10px;
            overflow: hidden;
        }
    
        .carousel-container .carousel-list li em {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 112px;
            height: 26px;
            background-color: #000;
            opacity: 0.6;
            z-index: 102;
        }
    
        .carousel-container .carousel-list li p {
            position: absolute;
            bottom: 0;
            width: 112px;
            height: 26px;
            line-height: 26px;
            text-align: center;
            z-index: 103;
        }
    
        .carousel-container .carousel-list li p a {
            color: #fff;
            font-size: 12px;
        }
    
        .carousel-container .carousel-list li img {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            margin: auto;
            height: 80px;
            z-index: 100;
        }
    
        .carousel-container .carousel-list li img:hover {
            transform: scale(1.05);
            transition: all .3s ease;
            -webkit-transition: all .3s ease;
            -moz-transition: all .3s ease;
            -ms-transition: all .3s ease;
            -o-transition: all .3s ease;
        }
    
        .carousel-container .arrow {
            position: absolute;
            width: 22px;
            height: 33px;
            z-index: 104;
            background: url("../images/arrow.png");
        }
    
        .carousel-container .arrow.next {
            background-position: -23px 0;
            top: 20px;
            right: 0;
        }
    
        .carousel-container .arrow.next:hover {
            background-position: -23px -34px;
        }
    
        .carousel-container .arrow.previous {
            background-position: 0 0;
            top: 20px;
            left: 0;
        }
    
        .carousel-container .arrow.previous:hover {
            background-position: 0 -34px;
        }
    
        .carousel-container .current {
            position: absolute;
            left: 0;
            width: 114px;
            height: 84px;
            border: 2px solid #ddd;
        }
    </style>
    
    <body>
        <div class="box-content">
            <div class="carousel-show">
                <ul class="item-list" id="carouselShowList">
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_1.jpg" alt="">
                            </a>
                        </div>
                    </li>
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_2.png" alt="">
                            </a>
                        </div>
                    </li>
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_3.jpg" alt="">
                            </a>
                        </div>
                    </li>
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_4.png" alt="">
                            </a>
                        </div>
                    </li>
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_5.jpg" alt="">
                            </a>
                        </div>
                    </li>
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_6.jpg" alt="">
                            </a>
                        </div>
                    </li>
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_7.jpg" alt="">
                            </a>
                        </div>
                    </li>
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_8.jpg" alt="">
                            </a>
                        </div>
                    </li>
                    <li>
                        <div class="banner-position">
                            <a href="javascript:;">
                                <img src="../images/1400x933_9.png" alt="">
                            </a>
                        </div>
                    </li>
                </ul>
            </div>
            <div class="carousel-wrap">
                <div class="current" id="carouselCurrent"></div>
                <div class="carousel-container">
                    <ul class="carousel-list" id="carouselList">
                        <li>
                            <p><a href="javascript:;">图1</a></p>
                            <em></em>
                            <img src="../images/112x80_1.jpg" alt="">
                        </li>
                        <li>
                            <p><a href="javascript:;">图2</a></p>
                            <em></em>
                            <img src="../images/112x80_2.png" alt="">
                        </li>
                        <li>
                            <p><a href="javascript:;">图3</a></p>
                            <em></em>
                            <img src="../images/112x80_3.jpg" alt="">
                        </li>
                        <li>
                            <p><a href="javascript:;">图4</a></p>
                            <em></em>
                            <img src="../images/112x80_4.png" alt="">
                        </li>
                        <li>
                            <p><a href="javascript:;">图5</a></p>
                            <em></em>
                            <img src="../images/112x80_5.jpg" alt="">
                        </li>
                        <li>
                            <p><a href="javascript:;">图6</a></p>
                            <em></em>
                            <img src="../images/112x80_6.jpg" alt="">
                        </li>
                        <li>
                            <p><a href="javascript:;">图7</a></p>
                            <em></em>
                            <img src="../images/112x80_7.jpg" alt="">
                        </li>
                        <li>
                            <p><a href="javascript:;">图8</a></p>
                            <em></em>
                            <img src="../images/112x80_8.jpg" alt="">
                        </li>
                        <li>
                            <p><a href="javascript:;">图9</a></p>
                            <em></em>
                            <img src="../images/112x80_9.png" alt="">
                        </li>
                    </ul>
                    <a href="javascript:;" class="arrow previous" id="arrowPrev"></a>
                    <a href="javascript:;" class="arrow next" id="arrowNext"></a>
                </div>
            </div>
        </div>
    </body>
    <script src="../JavaScript/jquery.min.js" type="text/javascript"></script>
    <script>
        $(document).ready(function () {
            let index = 0;
            let isMoveOver = true;
            let arrowPrev = $('#arrowPrev');
            let arrowNext = $('#arrowNext');
            let carouselList = $('#carouselList');
            let carouselCurrent = $('#carouselCurrent');
            let carouselListItems = $('#carouselList li');
            let listLength = carouselListItems.length; //轮播总数
            let showLength = 5; // 显示个数
            let stepWidth = 122; // 每个轮播长度
            let fixCurPonit = (showLength - 1) * stepWidth; //488
            let pointCurWidth = stepWidth - (listLength - showLength) * stepWidth;
            let pointPicWidth = (showLength - listLength) * stepWidth;
    
            //初始化图片列表实际长度
            carouselList.css('width', (listLength + 1) * 112 + 'px');
    
            showCurrentCarousel(index);
    
            function showCurrentCarousel(index) {
                $('#carouselShowList li').css({
                    display: 'none'
                });
                $('#carouselShowList li').eq(index).css({
                    display: 'block'
                });
            }
    
            carouselListItems.each(function (index) {
                $(this).click(function () {
                    let newLeft = parseInt($(this).offset().left) - stepWidth;
                    carouselCurrent.css('left', newLeft);
                    showCurrentCarousel(index);
                })
            })
    
            arrowPrev.click(function () {
                if (isMoveOver) {
                    movePrev();
                }
            });
            arrowNext.click(function () {
                if (isMoveOver) {
                    moveNext();
                }
            });
    
            function resetMoveOver() {
                isMoveOver = true;
            }
    
            function movePrev() {
                isMoveOver = false;
                let picLeft = parseFloat(carouselList.css('left'));
                let curLeft = parseFloat(carouselCurrent.css('left'));
                if (curLeft > 0 && curLeft <= fixCurPonit) {
                    index--;
                    let newCurLeft = curLeft - stepWidth;
                    //carouselCurrent.css('left', `${newCurLeft}px`);
                    carouselCurrent.animate({ left: `${newCurLeft}px` }, 300, resetMoveOver);
                } else if (picLeft === 0 && curLeft === 0) {
                    index = listLength - 1;
                    carouselCurrent.css('left', `${fixCurPonit}px`);
                    carouselList.css('left', `${pointPicWidth}px`);
                    isMoveOver = true;
                } else {
                    index--;
                    let newPicLeft = picLeft + stepWidth;
                    //carouselList.css('left', `${newPicLeft}px`);
                    carouselList.animate({ left: `${newPicLeft}px` }, 300, resetMoveOver)
                }
                showCurrentCarousel(index);
            }
    
            function moveNext() {
                isMoveOver = false;
                let picLeft = parseFloat(carouselList.css('left'));
                let curLeft = parseFloat(carouselCurrent.css('left'));
                if (picLeft < pointCurWidth && curLeft < fixCurPonit) {
                    index++;
                    let newCurLeft = curLeft + stepWidth;
                    //carouselCurrent.css('left', `${newCurLeft}px`);
                    carouselCurrent.animate({ left: `${newCurLeft}px` }, 300, resetMoveOver);
                } else if (picLeft === pointPicWidth && curLeft === fixCurPonit) {
                    index = 0;
                    carouselCurrent.css('left', '0');
                    carouselList.css('left', '0');
                    isMoveOver = true;
                } else {
                    index++;
                    let newPicLeft = picLeft - stepWidth;
                    //carouselList.css('left', `${newPicLeft}px`);
                    carouselList.animate({ left: `${newPicLeft}px` }, 300, resetMoveOver)
                }
                showCurrentCarousel(index);
            }
        })
    </script>
    
    </html>
  • 相关阅读:
    Java Generics and Collections-2.2
    Java Generics and Collections-2.1
    Java Generics and Collections-8.1
    oracle 倒库后insert id冲突的问题
    第十章 基本数据结构 练习 10.4-4
    第十章 基本数据结构 练习 10.4-2
    第十章 基本数据结构 练习 10.4-3
    第九章 中位数和顺序统计量 9.2 期望为线性时间的选择算法
    Log4j2的基本使用
    JSF页面中的JS取得受管bean的数据(受管bean发送数据到页面)
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/13194245.html
Copyright © 2020-2023  润新知