在最近做了一了移动端动画页面,总结一下所用知识点记录学习:
- 满屏滑动:swiper.js
- 生成海报:html2canvas.js
- swiper动画css:animate.min.css
- css动画
- flex布局
swiper.js
使用方法 本案例使用4.0版本
1.首先加载插件,需要用到的文件有swiper.min.js和swiper.min.css文件。可下载Swiper文件或使用CDN。
<!DOCTYPE html>
<html>
<head>
...
<link rel="stylesheet" href="dist/css/swiper.min.css" target="_blank" rel="external nofollow" >
</head>
<body>
...
<script src="dist/js/swiper.min.js"></script>
...
</body>
</html>
2.HTML内容。
<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>
<!-- 如果需要分页器 -->
<div class="swiper-pagination"></div>
<!-- 如果需要导航按钮 -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
<!-- 如果需要滚动条 -->
<div class="swiper-scrollbar"></div>
</div>
**导航等组件可以放在container之外
3.你可能想要给Swiper定义一个大小,当然不要也行。
.swiper-container {
width: 600px;
height: 300px;
}
4.初始化Swiper:最好是挨着标签
...
<script>
var mySwiper = new Swiper ('.swiper-container', {
direction: 'vertical', // 垂直切换选项
loop: true, // 循环模式选项
// 如果需要分页器
pagination: {
el: '.swiper-pagination',
},
// 如果需要前进后退按钮
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
// 如果需要滚动条
scrollbar: {
el: '.swiper-scrollbar',
},
})
</script>
</body>
如果不能写在HTML内容的后面,则需要在页面加载完成后再初始化。
<script>
window.onload = function() {
...
}
</script>
或者这样(Jquery和Zepto)(推荐)
<script>
$(document).ready(function () {
...
})
</script>
到此可以实现一个简单的swiper切换了。
api文档也很全:https://www.swiper.com.cn/api/event/258.html
Swiper Animate使用方法
Swiper Animate是Swiper中文网提供的用于在Swiper内快速制作CSS3动画效果的小插件,适用于Swiper2.x、Swiper3.x和Swiper4.x 。
✨此插件不适用于loop模式
- 使用Swiper Animate需要先加载swiper.animate.min.js和animate.min.css。
<!DOCTYPE html>
<html>
<head>
...
<link rel="stylesheet" href="path/to/swiper.min.css" target="_blank" rel="external nofollow" >
<link rel="stylesheet" href="path/to/animate.min.css" target="_blank" rel="external nofollow" >
</head>
<body>
...
<script src="path/to/swiper.min.js"></script>
<script src="path/to/swiper.animate.min.js"></script>
</body>
</html>
- 初始化时隐藏元素并在需要的时刻开始动画。
<script>
//Swiper4.x
var mySwiper = new Swiper ('.swiper-container', {
on:{
init: function(){
swiperAnimateCache(this); //隐藏动画元素
swiperAnimate(this); //初始化完成开始动画
this.emit('slideChangeTransitionEnd')
},
slideChangeTransitionEnd: function(){
swiperAnimate(this); //每个slide切换结束时也运行当前slide动画
//this.slides.eq(this.activeIndex).find('.ani').removeClass('ani'); 动画只展现一次,去除ani类名
}
}
})
</script>
- 在需要运动的元素上面增加类名 ani,和其他的类似插件相同,Swiper Animate需要指定几个参数:
- swiper-animate-effect:切换效果,例如 fadeInUp
- swiper-animate-duration:可选,动画持续时间(单位秒),例如 0.5s
- swiper-animate-delay:可选,动画延迟时间(单位秒),例如 0.3s
<div class="swiper-slide">
<p class="ani" swiper-animate-effect="fadeInUp" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容</p>
</div>