因爲app的更新迭代 我須要完成新版本設計圖的開發css
剛開始就遇到一個問題 首頁的banner圖須要實現某種效果 而ionic3自帶的輪播圖效果怎麼改都改不到我想要的效果html
效果圖以下 自動播放 不斷輪播web
因此我就用平時用的swiper插件找找有沒有相似的 還真找到一個 連接 http://www.swiper.com.cn/demo/110-slides-per-view.htmlapp
不過在使用過程當中仍是遇到一些問題 下面會說到ionic
<link rel="stylesheet" type="text/css" href="assets/css/swiper.min.css"> <script src="assets/js/swiper.min.js"></script>
import { Component, ViewChild } from '@angular/core'; import { IonicPage, NavController, NavParams } from 'ionic-angular'; declare let Swiper:any;
注意事項:slidesPerView 這個屬性的值能夠調成小數點 1.2 這樣才和設計圖的效果同樣ide
可是有個問題 當它的值未小數的時候而且循環輪播 第二次開始日後播放的時候 第二張圖片不會顯示就是尚未放到右邊那個位置(這是我研究它的代碼發現的一個bug) 可是它仍是會滾動 滾動後會顯示 詳情見下圖oop
這個問題我用另外一種方法解決了 slidesPerView的值改成了2 還用css樣式修改了一下 視覺上是同樣並且也沒有上面的問題 詳情看下面cssflex
ionViewDidLoad() { var swiper = new Swiper('.swiper-container', { autoplay: { delay: 2500, disableOnInteraction: false, }, slidesPerView: 2, spaceBetween: 10, centeredSlides: true, loop: true, pagination: { el: '.swiper-pagination', clickable: true, }, }); }
<div class="banner"> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide"><img src="assets/images/positions/banner.png"></div> <div class="swiper-slide"><img src="assets/images/positions/banner2.png"></div> <div class="swiper-slide"><img src="assets/images/positions/banner3.png"></div> </div> <div class="swiper-pagination"></div> </div> </div>
注意事項:上面slidesPerView值改成2 以後 左右兩邊是下面圖片中的效果 左右兩邊太大了 佔百分比太多flexbox
因此我外面包了一個類名爲banner的div 把它的寬調大 而後居中 多餘出來的被父元素overflow:hidden 因此和設計圖效果徹底同樣了 也沒有Bug了 完美解決!!!spa
// banner圖 .banner { width: 180%; height: auto; margin-left: -40%; margin-top: 14px; } .banner img { width: 100%; display: block; } .swiper-slide { text-align: center; font-size: 18px; /* Center slide text vertically */ display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; -webkit-align-items: center; align-items: center; } .swiper-pagination-bullet-active { background: #ff8503; } .swiper-slide img { width: 100%; border-radius: 15px!important; }
而後 這個難題就攻克了 有遇到相似問題的 能夠試試 另外想在ionic3中引用外部插件的 也能夠用這種方法