天天看點

h5動畫項目總結

在最近做了一了移動端動畫頁面,總結一下所用知識點記錄學習:
  • 滿屏滑動: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模式

  1. 使用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>
           
  1. 初始化時隐藏元素并在需要的時刻開始動畫。
<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>
           
  1. 在需要運動的元素上面增加類名 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>