【问题标题】:Swiper slider does not load multiple views for slider layoutSwiper 滑块不会为滑块布局加载多个视图
【发布时间】:2017-10-28 12:14:07
【问题描述】:

我正在使用来自here的滑动滑块

我正在尝试从该存储库中模仿 demo-no-210。

我的代码如下图:

index.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">
    <link rel="stylesheet" href="css/swiper.min.css">
    <link rel="stylesheet" href="css/app.css">

    <style>
        .swiper-container {
            width: 100%;
            height: 100%;
        }

        .swiper-slide {
            text-align: center;
            font-size: 18px;
            background: #fff;
            /* Center slide text vertically */
            display: -webkit-box;
            display: -ms-flexbox;
            /* width: 50px; */
            display: -webkit-flex;
            display: flex;
            -webkit-box-pack: center;
            -ms-flex-pack: center;
            -webkit-justify-content: center;
            justify-content: center;
            -webkit-box-align: center;
            -ms-flex-align: center;
            -webkit-align-items: center;
            align-items: center;
        }
    </style>
    <title>xyz</title>
</head>

<body ng-app="myApp">
    <ng-view></ng-view>

    <script src="bower_components/jquery/dist/jquery.js"></script>

    <script src="js/swiper.min.js"></script>

        <!-- Initialize Swiper -->
        <script>
            var swiper = new Swiper('.swiper-container', {
                slidesPerView: 4,
                spaceBetween: 30,
                slidesPerGroup: 4,
                loop: true,
                loopFillGroupWithBlank: false,
                pagination: {
                    el: '.swiper-pagination',
                    clickable: true,
                },
                navigation: {
                    nextEl: '.swiper-button-next',
                    prevEl: '.swiper-button-prev',
                },
            });
        </script>
    <script src="bower_components/angular/angular.js"></script>

</body>

</html>

home.html

<div>
 <div class="swiper-container">
        <div class="swiper-wrapper">
            <div class="swiper-slide">Slide 1</div>
            <div class="swiper-slide">Slide 2</div>
            <div class="swiper-slide">Slide 3</div>
            <div class="swiper-slide">Slide 4</div>
            <div class="swiper-slide">Slide 5</div>
            <div class="swiper-slide">Slide 6</div>
            <div class="swiper-slide">Slide 7</div>
            <div class="swiper-slide">Slide 8</div>
            <div class="swiper-slide">Slide 9</div>
            <div class="swiper-slide">Slide 10</div>
        </div>
        <div class="swiper-button-next"></div>
        <div class="swiper-button-prev"></div>
    </div>

</div>

但不知何故,我只能滑块图像 1 和左右箭头也不起作用。 我得到的效果如下图:

但我想要多个滑块,如下所示

这里有什么我遗漏的吗?

【问题讨论】:

  • 您是否在开发者控制台中遇到任何错误?
  • 开发者控制台没有错误。

标签: javascript jquery html css angularjs


【解决方案1】:

您需要将您的 JavaScript 移到您的 html 下方。下面的代码可以正常工作,但是当我将 html 移到 JavaScript 下方时,它会与您的代码相同。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.4.2/css/swiper.min.css">
        <link rel="stylesheet" href="css/app.css">

        <style>
            .swiper-container {
                width: 100%;
                height: 100%;
            }

            .swiper-slide {
                text-align: center;
                font-size: 18px;
                background: #fff;
                /* Center slide text vertically */
                display: -webkit-box;
                display: -ms-flexbox;
                /* width: 50px; */
                display: -webkit-flex;
                display: flex;
                -webkit-box-pack: center;
                -ms-flex-pack: center;
                -webkit-justify-content: center;
                justify-content: center;
                -webkit-box-align: center;
                -ms-flex-align: center;
                -webkit-align-items: center;
                align-items: center;
            }
        </style>
        <title>xyz</title>
    </head>
    <body>
        <div class="swiper-container">
            <div class="swiper-wrapper">
                <div class="swiper-slide">Slide 1</div>
                <div class="swiper-slide">Slide 2</div>
                <div class="swiper-slide">Slide 3</div>
                <div class="swiper-slide">Slide 4</div>
                <div class="swiper-slide">Slide 5</div>
                <div class="swiper-slide">Slide 6</div>
                <div class="swiper-slide">Slide 7</div>
                <div class="swiper-slide">Slide 8</div>
                <div class="swiper-slide">Slide 9</div>
                <div class="swiper-slide">Slide 10</div>
            </div>
            <div class="swiper-button-next"></div>
            <div class="swiper-button-prev"></div>
        </div>


        <script src="bower_components/jquery/dist/jquery.js"></script>

        <script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.4.2/js/swiper.min.js"></script>

            <!-- Initialize Swiper -->
        <script>
            var swiper = new Swiper('.swiper-container', {
                slidesPerView: 4,
                spaceBetween: 30,
                slidesPerGroup: 4,
                loop: true,
                loopFillGroupWithBlank: false,
                pagination: {
                    el: '.swiper-pagination',
                    clickable: true,
                },
                navigation: {
                    nextEl: '.swiper-button-next',
                    prevEl: '.swiper-button-prev',
                },
            });
        </script>

    </body>

</html>

【讨论】:

  • 将它移到 index.html 时效果很好。但是当我将它保存在 home.html 中时它不起作用。 (这里,我想把它集成到angular.js中)
  • 尝试将滑块初始化脚本移动到 angular 脚本标签下方。我认为 Slider 不起作用,因为 html 还不存在,因为 angular 直到我们到达页面的最底部才会生成它。
  • 我也试过了,可惜没成功。
  • @MrugeshThaker 给你两个建议。 1. 如果将初始化代码包装在 $(document).ready() 中会怎样。 2. 使用 jQuery 的 .noConfict();见api.jquery.com/jQuery.noConflict
猜你喜欢
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 2021-11-02
  • 2023-03-17
相关资源
最近更新 更多