zoukankan      html  css  js  c++  java
  • 解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题、滑动后不能轮播的问题。

    问题描述:

           1、我使用axios异步请求后台的图片进行渲染后不能实现循环轮播,也就是loop失效,但是静态写死的情况下不会出现这种问题。

           2、

    分析:

            swiper的机制是:初始化的时候将swiper-warpperslide类下的最后一个swiper-slide块克隆到第一个的位置,将第一个swiper-slide块克隆岛最后一个的位置,然后自动扫描swiper-warpperslide类下有多少个swiper-slide滑块,则允许滑动多少个块。因为我们异步请求数据之前,swiper-warpperslide类下没有swiper-slide滑块,所以不会出现循环轮播的效果。

    解决办法:

            在axios请求后的成功回调方法中初始化swiper方法。

            解决 滑动后不能自动轮播:将  disableOnInteraction:false 写在autoplay内

               

    以下是react项目中的代码:

     1 export default class Fime extends Component{
     2     constructor(){
     3         super();
     4         this.state={
     5             bannerImgArr:[]
     6         }
     7     }
     8     componentDidMount(){
     9         // 轮播
    10         // axios请求后台图片
    11         getBannerList().then((result)=>{
    12            this.setState({
    13                bannerImgArr:result
    14            },()=>{
    15             //    初始化swiper
    16              new Swiper('.swiper-container', {
    17                 observer: true,
    18                 direction:'horizontal',
    19                 loop: true,
    20                 initialSlide:0,
    21                 speed:1000,
    22                 autoplay:{
    23                     delay:2000,
    24                     disableOnInteraction:false, //解决滑动后不能轮播的问题
    25                 }, 
    26                 // 注意分页器的写法:
    27                 pagination: {
    28                     el:'.swiper-pagination'
    29                 },
    30               })
    31            })
    32         })
    33     }
    34     render(){
    35             let imgHtml=this.state.bannerImgArr.map((item,index)=>{
    36                 return(
    37                     <div className="swiper-slide"  key={index}>
    38                         <img src={item} />
    39                     </div>
    40                 )
    41             })
    42         return (
    43             <div className='film-page'>
    44                 <div className='bannner-box'>
    45                 {/* 轮播图部分 */}
    46                     <div className="swiper-container">
    47                         <div className="swiper-wrapper">
    48                             {imgHtml}
    49                         </div>
    50                         <div className="swiper-pagination"></div>
    51                     </div>
    52                 </div>
    53             </div>
    54         )
    55     }
    56 }

     效果展示:

       

  • 相关阅读:
    iOS 7用户界面过渡指南
    断言
    UIView的任意圆角
    ios与js交互获取webview元素和赋值
    JSONModel解析Dictionary To Model /JSON To Model
    Mac测试模拟慢网速
    MySQL批量调整数据表里的日期
    博客园查询自己网站二级目录被百度收录的情况
    windows文件夹里批量更新文件后缀
    git 学习
  • 原文地址:https://www.cnblogs.com/hgdzjp/p/10250138.html
Copyright © 2011-2022 走看看