Bootstrap4 轮播 手动滑动加轮播时间调整

2023-04-17  本文已影响0人  码农工号9527
<!DOCTYPE html>
<html>
<head>
    <title>Bootstrap 实例</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script>
    <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <style>
        /* Make the image fully responsive */
        .carousel-inner img {
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>

<div id="demo" class="carousel slide" data-ride="carousel" data-interval="1500">

    <!-- 指示符 -->
    <ul class="carousel-indicators">
        <li data-target="#demo" data-slide-to="0" class="active"></li>
        <li data-target="#demo" data-slide-to="1"></li>
        <li data-target="#demo" data-slide-to="2"></li>
    </ul>

    <!-- 轮播图片 -->
    <div class="carousel-inner">
        <div class="carousel-item active">
            <img src="https://static.runoob.com/images/mix/img_fjords_wide.jpg">
        </div>
        <div class="carousel-item">
            <img src="https://static.runoob.com/images/mix/img_nature_wide.jpg">
        </div>
        <div class="carousel-item">
            <img src="https://static.runoob.com/images/mix/img_mountains_wide.jpg">
        </div>
    </div>

    <!-- 左右切换按钮 -->
    <a class="carousel-control-prev" href="#demo" data-slide="prev">
        <span class="carousel-control-prev-icon"></span>
    </a>
    <a class="carousel-control-next" href="#demo" data-slide="next">
        <span class="carousel-control-next-icon"></span>
    </a>

</div>
<script>
//定义起始为止的和结束位置变量
let start, end;
function handleTouchEvent(event) {

    //代表用户手指有触摸的状态,离开的时候状态touches的长度为0
    if (event.touches.length == 1) {
        //获取当前位置(手指触摸的时候一直是触发的状态)
        let positionDom = event.touches[0].clientX;

        switch (event.type) {
            //手指放在一个DOM元素上
            case "touchstart":
                console.log(positionDom);
                start = positionDom;
                break;

            //手指拖曳一个DOM元素
            case "touchmove":
                console.log(positionDom);
                end = positionDom;
                break;

        }
    }else if(event.touches.length == 0){
        //手指从一个DOM元素上移开
        if(event.type == "touchend"){

            //代表用户向上滑动
            if(end > start){
                //跳转到上一页
                $("#carouselExampleCaptions").carousel('prev');
            }else if(end < start){
                //跳转到下一页
                $("#carouselExampleCaptions").carousel('next');
            }
        }

    }
}

document.getElementById("demo").addEventListener("touchstart", handleTouchEvent, false);
document.getElementById("demo").addEventListener("touchend", handleTouchEvent, false);
document.getElementById("demo").addEventListener("touchmove", handleTouchEvent, false);
</script>
</body>
</html>

data-interval="1500" 指 1.5秒滑动一次
js 代码实现手指左右滑动

上一篇 下一篇

猜你喜欢

热点阅读