网页图片轮播,一张图时不轮播,大于一张时轮播

使用swiper做轮播,需求是images文件夹下有多少图片就轮播多少图片,一张图片时不轮播。

因前端js不能获取目录和文件列表,所以在这里使用了php来读取图片文件列表,文件为php格式 代码内容为html+php。  


需要引入swiper的css 库和swiper的js库 用到jquery就引入jquery,用不到就不引入

<link href="https://cdn.bootcss.com/Swiper/4.4.5/css/swiper.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/Swiper/4.4.5/js/swiper.min.js"></script>

代码结构如下:

  <?php
    # 读取images文件夹下banner开头的jpg图片文件列表
    $img_list = glob("./images/banner*.jpg");
  ?>

  <?php if(count($img_list) == 1) :?>
        <div class="index-img j_img_jump">
            <img src="<?php echo $img_list[0]; ?>">
        </div>
    <?php else: ?>
        <!-- 一张图时渲染到上面,大于一张时渲染到下面轮播 -->
        <div class="swiper-container">
            <div class="swiper-wrapper">
            <?php foreach ($img_list as $key => $value) : ?>
                    <div class="swiper-slide index-img j_img_jump">
                        <img src="<?php echo $value; ?> ">
                    </div>
            <?php endforeach; ?>
            </div>
        </div>
    <?php endif; ?>

js部分的代码:

new Swiper('.swiper-container', {
  autoplay: true,
  loop:true,
  autoplay: {
    delay: 3000,
    disableOnInteraction: false
  }
})

php部分主要用到了glob函数,它可以返回匹配指定模式的文件名或目录,如果存在 返回的是个数组,不存在会返回false,我在这里读取的是images文件夹下以banner开头的jpg文件,用count判断数组的长度,如果只有一个文件 就取第0个的值 渲染的时候就不渲染到swiper里了,图片大于一张时,使用foreach把数组的每一个值渲染到swiper里,就会轮播

js部分就是swiper的基本配置了。


图片img标签的父容器div上的类名 index-img  是为了写图片的宽高样式,一张图片时和轮播图片时宽高样式一致。

图片img标签的父容器div上的类名 j_img_jump 是为了写点击事件,一张图片时和轮播图片时点击事件一致,点击图片时跳转页面用的。

原文地址:https://www.cnblogs.com/easth/p/php_swiper.html