JS 流行库(五):Swiper

Swiper 是使用 JavaScript 实现的跨平台滑动特效插件,开源、免费、稳定、简单且功能强大,可以实现焦点图、tab 切换等常用效果

此篇笔记中 Swiper 的版本为 8.x

基本使用

  1. 导入 swiper 库

示例如下:

<link rel="stylesheet" href="./swiper-bundle.css">
<script src="./swiper-bundle.js"></script>

不同版本的 Swiper 中导入的文件不同

  1. HTML 结构

示例如下:

<style>.swiper {width: 600px;height: 300px;text-align: center;border: 1px solid black;border-radius: 15px;box-shadow: 0 0 10px gray;margin: 50px auto;}.swiper-wrapper {line-height: 300px;}
</style>
<div class="swiper"><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>
</div>
  1. JavaScript 代码

示例如下:

window.onload = function () {let mySwiper = new Swiper('.swiper');
}

高级使用

以下将介绍的功能均基于上述已初始化的焦点图

分页器

在 Swiper 中新增分页器的过程如下所示:

  1. HTML 结构

示例如下:

<div class="swiper"><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><div class="swiper-pagination"></div>
</div>
  1. JavaScript 代码

示例如下:

window.onload = function () {let mySwiper = new Swiper('.swiper', {pagination: {   // 分页el: '.swiper-pagination',   // DOM 元素clickable: true,            // 分页点击dynamicBullets: true        // 动态分页}});
}

在上述示例中,演示了部分 pagination 的属性,详情可以查询 API 文档

无限循环

如果在 Swiper 中实现无限循环,那么可以在初始化时配置选项,从而实现无限循环功能,示例如下:

window.onload = function () {let mySwiper = new Swiper('.swiper', {pagination: {el: '.swiper-pagination',clickable: true,dynamicBullets: true},loop: true  // 无限循环});
}

自动切换

如果在 Swiper 中实现自动切换,那么可以在初始化时配置选项,从而实现自动切换功能,示例如下:

window.onload = function () {let mySwiper = new Swiper('.swiper', {pagination: {el: '.swiper-pagination',clickable: true,dynamicBullets: true},loop: true,autoplay: { // 自动切换delay: 2000 // 延迟时间}});
}

导航

在 Swiper 中新增导航的过程如下所示:

  1. HTML 结构

示例如下:

<div class="swiper"><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><div class="swiper-pagination"></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div>
</div>
  1. JavaScript 代码

示例如下:

window.onload = function () {let mySwiper = new Swiper('.swiper', {pagination: {el: '.swiper-pagination',clickable: true,dynamicBullets: true},loop: true,autoplay: {delay: 2000},navigation: {   // 导航nextEl: '.swiper-button-next',  // DOM 元素prevEl: '.swiper-button-prev',  // DOM 元素}});
}

动画

在切换焦点图内容时,Swiper 可以为内容添加动画,过程如下:

  1. HTML 结构

示例如下:

<div class="swiper"><div class="swiper-wrapper"><div class="swiper-slide"><p class="ani" swiper-animate-effect="bounceIn">Slide 1</p></div><div class="swiper-slide"><p class="ani" swiper-animate-effect="bounceInDown">Slide 2</p></div><div class="swiper-slide"><p class="ani" swiper-animate-effect="bounceInUp">Slide 3</p></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div>
</div>
  1. JavaScript 代码

示例如下:

window.onload = function () {let mySwiper = new Swiper('.swiper', {pagination: {el: '.swiper-pagination',clickable: true,dynamicBullets: true},loop: true,autoplay: {delay: 2000},navigation: {nextEl: '.swiper-button-next',prevEl: '.swiper-button-prev',},on: {init: function () {swiperAnimateCache(this);   // 隐藏动画元素 swiperAnimate(this);        // 初始化完成开始动画},slideChangeTransitionEnd: function () {swiperAnimate(this);        // 每个 slide 切换结束时也运行当前 slide 动画}}});
}

Swiper 中动画效果的底层原理是 CSS3 的动画,如此我们可以在 CSS 代码中自定义动画,示例如下:

@keyframes myAnimation {0% {opacity: 0;transform: scale(2);}100% {opacity: 1;transform: scale(1);}
}.myAnimation {animation-name: myAnimation;
}

将相应 DOM 元素的 swiper-animate-effect 属性设置为自定义动画名称即可,示例如下:

<div class="swiper"><div class="swiper-wrapper"><div class="swiper-slide"><p class="ani" swiper-animate-effect="myAnimation">Reyn Morales</p></div><div class="swiper-slide"><p class="ani" swiper-animate-effect="bounceInDown">Slide 2</p></div><div class="swiper-slide"><p class="ani" swiper-animate-effect="bounceInUp">Steven Jobs</p></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div>
</div>

此外,也可以在 HTML 中通过 swiper-animate-duration 和 swiper-animate-delay 属性配置动画的持续时间和延迟时间,示例如下:

<div class="swiper"><div class="swiper-wrapper"><div class="swiper-slide"><p class="ani" swiper-animate-effect="myAnimation">Reyn Morales</p></div><div class="swiper-slide"><p class="ani" swiper-animate-effect="bounceInDown" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">Slide 2</p></div><div class="swiper-slide"><p class="ani" swiper-animate-effect="bounceInUp">Steven Jobs</p></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div>
</div>

JS 流行库(五):Swiper相关推荐

  1. JS 流行库(七):WOW

    JS 流行库(七):WOW WOW.js 是 Animate.css 的扩充,以让页面滚动更加有趣,在页面滚动的过程中逐渐释放动画效果,示例如下: WOW.js 首页; 即 WOW.js + Anim ...

  2. JS 流行库(三):Zepto

    JS 流行库(三):Zepto Zepto 框架是一个类似于 jQuery 的轻量级框架,抛弃了低级浏览器的适配问题,所以体积更小,如果会使用 jQuery,那么基本上也会使用 Zepto,jQuer ...

  3. 当前最流行的 js 工具库

    高手区别于普通人的重要一点是,他们善于利用工具,把更多的时间留给了规划和思考.写代码也是同样的道理,工具用好了,你就有更多的时间来规划架构和攻克难点.今天就给大家分享一下当前最流行的 js 工具库,如 ...

  4. extjs chart无法在panel中显示_手绘风格的 JS 图表库:Chart.xkcd

    本文作者:HelloGitHub-kalifun 图表库千万个今天 HelloGitHub 给大家推荐个很有"特色"的图表库:一个手绘风格的 JS 图表库 -- Chart.xkc ...

  5. JS工具库moment —— 实现日历

    moment moment是一个js工具库,这个库中封装的是日期时间的方法,功能很全面.可以去moment官网看看,它的中文文档介绍的也很详细,主要是看一下方法的使用.附上官网地址:moment.js ...

  6. 10个常用的JS工具库

    10个常用的JS工具库,80%的项目都在用! Avue Cloud 2022-01-26 09:46 图片 高手区别于普通人的重要一点是,他们善于利用工具,把更多的时间留给了规划和思考.写代码也是同样 ...

  7. Gremlins.js – 模拟用户随机操作的 JS 测试库

    Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...

  8. js折线图设置y轴刻度_手绘风格的 JS 图表库:Chart.xkcd

    本文作者:HelloGitHub-kalifun 图表库千万个今天 HelloGitHub 给大家推荐个很有"特色"的图表库:一个手绘风格的 JS 图表库 -- Chart.xkc ...

  9. Angular Chart.js第三方库ng-chartjs基础使用

    Angular Chart.js第三方库ng-chartjs基础使用 项目github地址 这个项目支持基本的Chart.js图表,并且支持内联插件和全局插件的使用. Demo地址 支持图表类型 li ...

最新文章

  1. Visual Studio代码中的多个游标[关闭]
  2. 手把手教你将pyqt程序打包成exe(2)
  3. Manual手册的正确姿势
  4. 学点 C 语言(20): 数据类型 - 指针
  5. netty 客户端断开 异常处理_netty案例,netty4.1基础入门篇八《NettyClient半包粘包处理》发数据方式》...
  6. [4] ADB 应用管理
  7. Keil5的仿真调试
  8. (二)surging 微服务框架使用系列之surging 的准备工作consul安装(转载 https://www.cnblogs.com/alangur/p/8377977.html)...
  9. 《Python数据分析实战》day2: Pandas中取得某行或者是某列的一点思考
  10. windows笔记-【内核对象线程同步】概述
  11. 关于jar文件打不开的解决方法
  12. 制作业信息化为什么难施行?
  13. c语言基础知识 入门必看(保姆级教学)
  14. 2011年分形艺术国际大赛比赛规则
  15. 谷歌地图时代结束,怎么看高清卫星影像地图?
  16. firefox 护眼
  17. 【工业】工业无线组网场景下的典型拓扑及设备解决方案
  18. vr线上虚拟展馆H5三维购物带的便利【商迪3D】与您细说
  19. MATLAB解方程组
  20. IT项目管理个人总结

热门文章

  1. QT 自定义带图片背景半透明阴影窗口
  2. web前端三大主流框架是什么?
  3. 7z SFX Builder v2.3.1 7Z自解压生成器中文版
  4. onnx-modifier使用
  5. Java高频重点面试题,看这一篇就够了。
  6. 坦克世界未能连接至更新服务器,坦克世界连接到更新服务器失败,小猪教您怎么解决坦克世界连接到更新服务器...
  7. 蓝牙耳机无法打开计算机,电脑搜不到蓝牙耳机怎么回事_电脑搜不到蓝牙耳机的处理方法【图文】...
  8. linux 多个csv合并成一个csv
  9. 出现Whitelabel Error Page的解决方法(持续更新带图并总结了其他博文)
  10. 漫画:什么是 “智能供应链” ?