zoukankan      html  css  js  c++  java
  • swiper单屏滚动

    .swiper-slide {
        overflow: auto;
    }

    1. 排除某些屏,不滚动

    var startScroll, touchStart, touchCurrent;
    var aSlide = Array.prototype.slice.call(swiper.slides);
    aSlide.forEach(function(item,index){
      //按索引排除某些屏
       if(index != 2){
            item.addEventListener('touchstart', function (e) {
                startScroll = this.scrollTop;
                touchStart = e.targetTouches[0].pageY;
            }, true);
            item.addEventListener('touchmove', function (e) {
                touchCurrent = e.targetTouches[0].pageY;
                var touchesDiff = touchCurrent - touchStart;
                var slide = this;
                var onlyScrolling =
                        ( slide.scrollHeight > slide.offsetHeight ) && //allow only when slide is scrollable
                        (
                            ( touchesDiff < 0 && startScroll === 0 ) || //start from top edge to scroll bottom
                            ( touchesDiff > 0 && startScroll === ( slide.scrollHeight - slide.offsetHeight ) ) || //start from bottom edge to scroll top
                            ( startScroll > 0 && startScroll < ( slide.scrollHeight - slide.offsetHeight ) ) //start from the middle
                        );
                if (onlyScrolling) {
                    e.stopPropagation();
                }
            }, true);
       }
    });

    2. 按条件排除滚动,消除touchmove影响

    var startScroll, touchStart, touchCurrent;
    swiper.slides.on('touchstart', function (e) {
        startScroll = this.scrollTop;
        touchStart = e.targetTouches[0].pageY;
    }, true);
    swiper.slides.on('touchmove', function (e) {
        var slide = this;
        //排除条件
        if($('#swiperWrapper>.swiper-slide-active').next().length == 0 && document.querySelector(self.template).contains(e.target)){
            return;
        }
        touchCurrent = e.targetTouches[0].pageY;
        var touchesDiff = touchCurrent - touchStart;
        var onlyScrolling =
                ( slide.scrollHeight > slide.offsetHeight ) && //allow only when slide is scrollable
                (
                    ( touchesDiff < 0 && startScroll === 0 ) || //start from top edge to scroll bottom
                    ( touchesDiff > 0 && startScroll === ( slide.scrollHeight - slide.offsetHeight ) ) || //start from bottom edge to scroll top
                    ( startScroll > 0 && startScroll < ( slide.scrollHeight - slide.offsetHeight ) ) //start from the middle
                );
        if (onlyScrolling) {
            e.stopPropagation();
        }
    }, true);
  • 相关阅读:
    laravel、TP、YII框架的优缺点
    关于如何关闭Laravel中严格模式的两种方法
    Laravel扩展阿里云OSS对象存储
    Laravel权限管理的应用记录
    laravel原生MySQL之Group记录
    laravel导出Xlsx
    软件工程课的认识
    斗兽棋项目开发计划书
    斗兽棋测试计划说明书
    测试报告分析
  • 原文地址:https://www.cnblogs.com/mengff/p/7611805.html
Copyright © 2011-2022 走看看