• h5仿转转banner轮播效果


    h5实现banner图与背景图同时切换的效果(swiper插件)

    1、要在.swiper-box的div外面加一个div#big-bg,设置样式position:absolute;

    2、css样式中写好3个背景图样式:.banner-bg1、.banner-bg2、.banner-bg3

    3、需要查看项目工程里swiper.js的源代码(node_modules/swiper/dist/js/swiper.js),找到控制自动轮播和触屏滑动的事件中emit出的方法名:autoplay、touchMove

     

    4、在需要用到swiper插件的组件的初始化swiper的方法里,加入该方法的回调函数

    _.initSwiper(){
        var mySwiper = new Swiper(".swiper-box",{
            ....
          
        on:{
        beforeSlideChangeStart:function(){
            if(this.activeIndex == 0){
            this.$('#big-bg').addClass("banner-bg1");
            }
        },
        touchMove:function(){
            let that = this;
            setTimeout(function() {      //因为touchMove触发后,activeIndex更新延后了,所以延迟10ms再判断activeMove值
            if(that.activeIndex == 0){
                that.$('#big-bg').removeClass("banner-bg2");
                that.$('#big-bg').removeClass("banner-bg3");
                that.$('#big-bg').addClass("banner-bg1");
            }else if(that.activeIndex == 1){
                that.$('#big-bg').removeClass("banner-bg1");
                that.$('#big-bg').removeClass("banner-bg3");
                that.$('#big-bg').addClass("banner-bg2");
            }else if(that.activeIndex == 2){
                that.$('#big-bg').removeClass("banner-bg1");
                that.$('#big-bg').removeClass("banner-bg2");
                that.$('#big-bg').addClass("banner-bg3");
            }else{
                that.$('#big-bg').removeClass("banner-bg1");
                that.$('#big-bg').removeClass("banner-bg3");
                that.$('#big-bg').addClass("banner-bg2");
            }
            }, 10);
        },
        autoplay:function(){
            if(this.activeIndex == 0){
                this.$('#big-bg').removeClass("banner-bg2");
                this.$('#big-bg').removeClass("banner-bg3");
                this.$('#big-bg').addClass("banner-bg1");
            }else if(this.activeIndex == 1){
                this.$('#big-bg').removeClass("banner-bg1");
                this.$('#big-bg').removeClass("banner-bg3");
                this.$('#big-bg').addClass("banner-bg2");
            }else if(this.activeIndex == 2){
                this.$('#big-bg').removeClass("banner-bg1");
                this.$('#big-bg').removeClass("banner-bg2");
                this.$('#big-bg').addClass("banner-bg3");
            }else{
                this.$('#big-bg').removeClass("banner-bg1");
                this.$('#big-bg').removeClass("banner-bg3");
                this.$('#big-bg').addClass("banner-bg2");
            }
        },    
    }                         
  • 相关阅读:
    python中filter(),map()和reduce()的用法及区别
    Python中的单例模式的几种实现方式的及优化
    python标准库和第三方库的区别
    django和flask的区别
    wtforms
    protobuf学习
    人物FSM
    策略模式
    虚函数调用机制
    虚析构函数
  • 原文地址:https://www.cnblogs.com/janney/p/10298129.html
Copyright © 2020-2023  润新知