美文网首页swiper
仿抖音上划和下拉

仿抖音上划和下拉

作者: 谢炳南 | 来源:发表于2018-12-31 10:48 被阅读0次

    实现思路

    监听上划和下滑事件,当下滑都第三个或第一个swiper的时候马上切换到第二个swiper并更新第一个和第三个swiper里面的内容

    1.引入swiper css 和 js 文件 下载地址

    2.定义样式

            <style type="text/css">
                .swiper-container {
                    width: 100%;
                    height: 100%;
                }
                
                .swiper-slide {
                    width: 100%;
                    height: 100%;
                    position: relative;
                }
                
                .firstBg,
                .secondBg,
                .threeBg {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
            </style>
    

    3.html内容

            <div class="swiper-container">
                <div class="swiper-wrapper">
                    <div class="swiper-slide">
                        <img class="firstBg" src="" />
                    </div>
                    <div class="swiper-slide">
                        <img class="secondBg" src="" />
                    </div>
                    <div class="swiper-slide">
                        <img class="threeBg" src="" />
                    </div>
                </div>
            </div>
    

    4. js内容

        // 分页
        var page = 0;
        // 播放的列表
        var list = [];
        var first = true;
    
        var current = 0;
    
        var mySwiper = new Swiper('.swiper-container', {
            initialSlide: 1,
            direction: 'vertical',
            allowSlidePrev: false,
        })
        init();
    
        function init() {
            getVideo();
        }
    
        function getVideo() {
            $.ajax({
                url: "/user/v3_3_0/home",
                headers: {
                    platform: 3
                },
                data: {
                    type: 1,
                    page: page,
                },
                method: 'get',
                beforeSend: function() {
                    Loading.show({
                        type: 6
                    });
                }
            }).done(function(res) {
                Loading.hide();
                if(res.code != 1) {
                    Toast({
                        message: res.msg
                    })
                    return;
                }
                list = list.concat(res.data.topic_list);
                if(list.length > 100) {
                    var deleteLength = list.length - 100;
                    list = list.splice(deleteLength, 100);
                    current -= deleteLength;
                }
                if(first) {
                    first = false;
                    if(list[0]) {
                        $('.secondBg').prop('src', list[0].cover_url);
                    }
                    if(list[1]) {
                        $('.threeBg').prop('src', list[1].cover_url);
                    }
    
                    mySwiper.on('slidePrevTransitionEnd', function() {
                        current--;
                        if(mySwiper.activeIndex == 0) {
                            mySwiper.slideTo(1, 0, false);
                        }
                        if(current == 0) {
                            mySwiper.allowSlidePrev = false;
                        } else {
                            $('.firstBg').prop('src', list[current - 1].cover_url);
                        }
                        $('.secondBg').prop('src', list[current].cover_url);
                        $('.threeBg').prop('src', list[current + 1].cover_url);
                    });
    
                    mySwiper.on('slideNextTransitionEnd', function() {
                        current++;
                        if(!mySwiper.allowSlidePrev) {
                            mySwiper.allowSlidePrev = true;
                        }
                        if(mySwiper.activeIndex == 2) {
                            mySwiper.slideTo(1, 0, false);
                        }
                        $('.firstBg').prop('src', list[current - 1].cover_url);
                        $('.secondBg').prop('src', list[current].cover_url);
                        $('.threeBg').prop('src', list[current + 1].cover_url);
                        if(list.length - current <= 3) {
                            getVideo();
                        }
                    });
                }
                if(res.data.video_flag == 1) {
                    page++;
                } else if(res.data.video_flag == 2) {
                    page = 1;
                }
            }).fail(function(res) {
                Toast({
                    message: "网络出错了"
                })
                Loading.hide();
            });
        }
    

    相关文章

      网友评论

        本文标题:仿抖音上划和下拉

        本文链接:https://www.haomeiwen.com/subject/nteilqtx.html