zoukankan      html  css  js  c++  java
  • 运用CRM完成Swiper轮播

    在此之前,我有记录过如何用jQuery完成轮播,详见博客文章,其过程十分鬼畜,要考虑很多问题。

    虽然实现的过程中学习到了很多东西,但是工作之后一个轮播也要自己手把手撸的话可没有那么多时间。

    现在的库那么多,为什么不直接用现成的库来实现呢?

    今天就记录一下用swiper来实现轮播:Swiper官网

    在使用一个不熟悉的库的时候,方老师教的CRM大法就派上了大用场了。

    什么是CRM

    Copy(C)-Run(R)-Motify(M),其实就是完整地依照官方文档提供的教程操作,先把他的主要功能运行起来,再根据项目的需求,查询API,慢慢地进行修改、完善,直至完成。

    好啦,开始吧。


    Copy

    完全照着官方demo的教程,添加项目依赖和代码结构。

    引入依赖

    <!-- 引入CSS -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.x.x/css/swiper.min.css">
    
    <!-- 引入JavaScript -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.x.x/js/swiper.min.js"></script>
    
    

    注意:

    1.替换版本号:

    注意替换版本号

    2.如何确定项目中已正确引入JS文件:我们可以看到官网demo中,完成轮播需要创建一个Swiper实例对象,我们只要在控制台中log一下目前window中有没有这个属性即可:

    引入文件

    添加HTML

    <!-- Slider main container -->
    <div class="swiper-container">
        <!-- Additional required wrapper -->
        <div class="swiper-wrapper">
            <!-- Slides -->
            <div class="swiper-slide">Slide 1</div>
            <div class="swiper-slide">Slide 2</div>
            <div class="swiper-slide">Slide 3</div>
            ...
        </div>
        <!-- If we need pagination -->
        <div class="swiper-pagination"></div>
    
        <!-- If we need navigation buttons -->
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
    
        <!-- If we need scrollbar -->
        <div class="swiper-scrollbar"></div>
    </div>
    

    添加CSS

    .swiper-container {
         600px;
        height: 300px;
    }
    

    添加js

    <script>
        var mySwiper = new Swiper ('.swiper-container', {
        // Optional parameters
        direction: 'vertical',
        loop: true,
    
        // If we need pagination
        pagination: {
            el: '.swiper-pagination',
        },
    
        // Navigation arrows
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
    
        // And if we need scrollbar
        scrollbar: {
            el: '.swiper-scrollbar',
        },
        })
    </script>
    

    Run

    接着让我们来运行一下吧!

    轮播完成啦

    可以看到,虽然这个轮播差强人意,样式不美观,轮播框大小和轮播方向也不是我们想要,但是他已经运行起来了!他已经具有一个轮播该有的功能,我们需要做的只是把他修改到符合我们的需求而已!


    Motify

    根据我们的需求大刀阔斧地改进吧~

    修改轮播框大小:

    .swiper-container {
         800px;
        height: 600px;
    }
    

    修改轮播方向:

    可以看到JS创建的Swiper实例中,有一个direction: 'vertical'属性,他说明了目前轮播的方向是垂直的,我们把他删了试试。

    改变轮播方向

    删除scrollbar:

    这个scrollbar看起来不是很美观,我们把他也删了:

    为了更好地观察,我把背景调成了#999

    scrollbar

    滚动条没有了滚动特效,但是滚动条还在。

    是我们的HTML结构没有删除干净:

    <!-- 把这里删了就好 -->
    <!-- If we need scrollbar -->
    <div class="swiper-scrollbar"></div>
    

    修改前进后退按钮:

    因为.swiper-container使用了overflow:hidden,所以如果我们要把这两个按钮放在轮播框外面,就要把他从HTML结构中移出来:

    <div id="mySlides">
        <div class="swiper-container">
            <!-- Additional required wrapper -->
            <div class="swiper-wrapper">
                <!-- Slides -->
                <div class="swiper-slide">Slide 1</div>
                <div class="swiper-slide">Slide 2</div>
                <div class="swiper-slide">Slide 3</div>
            </div>
            <!-- If we need pagination -->
            <div class="swiper-pagination"></div>
        
        </div>
        <!-- If we need navigation buttons -->
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
    </div>
    

    修改按钮的CSS:

    .swiper-button-prev,
    .swiper-button-next {
        background-color: #fff;
        border-radius: 50%;
         66px;
        height: 66px;
        left: auto;
        right: 100%;
        top:54%;
    }
    .swiper-button-next {
        left: 100%;
        right: auto;
    }
    

    效果图

    一个炫(?)酷(?)的轮播就完成了~

    当然也可以换上自己的图片:

    <div id="mySlides">
        <div class="swiper-container">
            <!-- Additional required wrapper -->
            <div class="swiper-wrapper">
                <!-- Slides -->
                <img src="./img/works/canvas.jpg" class="swiper-slide">
                <img src="./img/works/keyboard.png" class="swiper-slide">
                <img src="./img/works/slides.png" class="swiper-slide">
            </div>
            <!-- If we need pagination -->
            <div class="swiper-pagination"></div>
        
        </div>
        <!-- If we need navigation buttons -->
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
    </div>
    

    最终代码详见JSbin

    不仅代码比我们之前的轮播简介,还有各种设置已经被封装好了给我们使用,可谓省心省力。


    总结

    其实这个轮播不是最重要的,重要的是在使用这个swiper库的过程中,所学到的CRM方法,先把东西copy过来,运行成功,再慢慢修改,碰到问题多google、StackOverflow,在面对其他我们不熟悉的库的使用时,我们也能丝毫不虚。

  • 相关阅读:
    Javascript 智能输入数字且保留小数点后三位
    dedecms 在模版页面获取当前栏目id
    photoshop打开图片显示的是索引,无法编辑解决
    Mac+Apache+PHP 安装 Xdebug 方法
    dedecms 模版里格式化时间标签
    input中只能写入数字int、float
    dedecmsv5.7 前台模版里输出变量
    Dedecms V5.7 关于session
    JQuery 获取select被选中的value和text
    如何使用Anaconda
  • 原文地址:https://www.cnblogs.com/No-harm/p/9647903.html
Copyright © 2011-2022 走看看