zepto fullpage js-zepto.fullpage.js想禁用手指上下滑屏的事件,只保留点击全屏滑动的事件的话该怎么做呢?

问题描述

zepto.fullpage.js想禁用手指上下滑屏的事件,只保留点击全屏滑动的事件的话该怎么做呢?

有了解zepto.fullpage.js的么?我如果想禁用手指上下滑屏的事件,只保留点击全屏滑动的事件的话该怎么做呢?

         *{
            margin: 0;
            padding: 0;
        }
        html,body{
            height: 100%;
        }
        #banner {
            height: 100%;
            overflow: hidden;
        }
        .section{
            height: 100%;
        }
        .section1{
            background: aquamarine;
        }
        .section2{
            background: #990000;
        }
        .section3{
            background: chartreuse;
        }
        .section4{
            background: cadetblue;
        }
        .section5{
            background: darkolivegreen;
        }
        .btn{
            position: absolute;
            top: 500px;
            left: 100px;
        }
     <div id="banner">
        <div class="section section1"></div>
        <div class="section section2"></div>
        <div class="section section3"></div>
        <div class="section section4"></div>
        <div class="section section5"></div>
        <input class="btn" type="button" value="下一页"/>
    </div>
 (function($, window, undefined) {
    if (typeof $ === 'undefined') {
        throw new Error('zepto.fullpage's script requires Zepto');
    }
    $(document).on('touchmove', function(e) {
        e.preventDefault();
    });
    var fullpage = null;
    var d = {
        page: '.page',
        start: 0,
        duration: 500,
        loop: false,
        drag: false,
        dir: 'v',
        change: function(data) {},
        beforeChange: function(data) {},
        afterChange: function(data) {},
        orientationchange: function(orientation) {}
    };

    function fix(cur, pagesLength, loop) {
        if (cur < 0) {
            return !!loop ? pagesLength - 1 : 0;
        }

        if (cur >= pagesLength) {
            return !!loop ? 0 : pagesLength - 1;
        }

        return cur;
    }

    function move($ele, dir, dist) {
        var translate = dir === 'v' ? 'translateY' : 'translateX';
        $ele.css('-webkit-transform', translate + '(' + dist + 'px)')
        .css('transform', translate + '(' + dist + 'px)');
    }

    function init(option) {
        var o = $.extend(true, {}, d, option);
        var that = this;
        that.curIndex = -1;
        that.o = o;

        that.startY = 0;
        that.movingFlag = false;

        that.$this.addClass('fullPage-wp');
        that.$parent = that.$this.parent();
        that.$pages = that.$this.find(o.page).addClass('fullPage-page fullPage-dir-' + o.dir);
        that.pagesLength = that.$pages.length;
        that.update();
        that.initEvent();
        that.status = 1;
    }

    function Fullpage($this, option) {
        this.$this = $this;
        init.call(this, option);
    }

    $.extend(Fullpage.prototype, {
        update: function() {
            if (this.o.dir === 'h') {
                this.width = this.$parent.width();
                this.$pages.width(this.width);
                this.$this.width(this.width * this.pagesLength);
            }

            this.height = this.$parent.height();
            this.$pages.height(this.height);

            this.moveTo(this.curIndex < 0 ? this.o.start : this.curIndex);
        },
        initEvent: function() {
            var that = this;
            var $this = that.$this;

            $this.on('touchstart', function(e) {
                if (!that.status) {return 1;}
                e.preventDefault();
                if (that.movingFlag) {
                    return 0;
                }

                that.startX = e.targetTouches[0].pageX;
                that.startY = e.targetTouches[0].pageY;
            });
            $this.on('touchend', function(e) {
                if (!that.status) {return 1;}
                e.preventDefault();
                if (that.movingFlag) {
                    return 0;
                }

                var sub = that.o.dir === 'v' ? e.changedTouches[0].pageY - that.startY : e.changedTouches[0].pageX - that.startX;
                var der = (sub > 30 || sub < -30) ? sub > 0 ? -1 : 1 : 0;

                that.moveTo(that.curIndex + der, true);
            });
            if (that.o.drag) {
                $this.on('touchmove', function(e) {
                    if (!that.status) {return 1;}
                    e.preventDefault();
                    if (that.movingFlag) {
                        return 0;
                    }

                    var y = e.changedTouches[0].pageY - that.startY;
                    var x = e.changedTouches[0].pageX - that.startX;
                    var dist = -that.curIndex * (that.o.dir === 'v' ? (that.height + y) : (that.width + x));
                    $this.removeClass('anim');
                    move($this, that.o.dir, dist);
                });
            }

            // 翻转屏幕提示
            // ==============================
            window.addEventListener("orientationchange", function() {
                if (window.orientation === 180 || window.orientation === 0) {
                    that.o.orientationchange('portrait');
                }
                if (window.orientation === 90 || window.orientation === -90) {
                    that.o.orientationchange('landscape');
                }
            }, false);

            window.addEventListener("resize", function() {
                that.update();
            }, false);
        },

        start: function() {
            this.status = 1;
        },
        stop: function() {
            this.status = 0;
        },
        moveTo: function(next, anim) {
            var that = this;
            var $this = that.$this;
            var cur = that.curIndex;
            next = fix(next, that.pagesLength, that.o.loop);

            if (anim) {
                $this.addClass('anim');
            } else {
                $this.removeClass('anim');
            }

            if (next !== cur) {
                that.o.beforeChange({
                    next: next,
                    cur: cur
                });
            }

            that.movingFlag = true;
            that.curIndex = next;
            move($this, that.o.dir, -next * (that.o.dir === 'v' ? that.height : that.width));

            if (next !== cur) {
                that.o.change({
                    next: next,
                    cur: cur
                });
            }

            window.setTimeout(function() {
                that.movingFlag = false;
                if (next !== cur) {
                    that.o.afterChange({
                        next: next,
                        cur: cur
                    });
                    that.$pages.removeClass('cur').eq(next).addClass('cur');
                }
            }, that.o.duration);
        },
        movePrev: function(anim) {
            this.moveTo(this.curIndex - 1, anim);
        },
        moveNext: function(anim) {
            this.moveTo(this.curIndex + 1, anim);
        }
    });

    $.fn.fullpage = function(option) {
        if (!fullpage) {
            fullpage = new Fullpage($(this), option);
        }
        return this;
    };
    //暴漏方法
    $.each(['update', 'moveTo', 'moveNext', 'movePrev', 'start', 'stop'], function(key, val) {
        $.fn.fullpage[val] = function() {
            if (!fullpage) {
                return 0;
            }
            fullpage[val].apply(fullpage, [].slice.call(arguments, 0));
        };
    });
}(Zepto, window));

解决方案

全屏滑动??你滑动不是由手指上线滑动组成的,你怎么知道是否全屏。。

解决方案二:

https://github.com/yanhaijing/zepto.fullpage/issues/12 亲记得去官网提问哈

时间: 2024-11-18 01:08:42

zepto fullpage js-zepto.fullpage.js想禁用手指上下滑屏的事件,只保留点击全屏滑动的事件的话该怎么做呢?的相关文章

javascript-js点击某一个链接交替执行两个函数(js实现网页全屏问题)

问题描述 js点击某一个链接交替执行两个函数(js实现网页全屏问题) 想实现的需求:1.网页上有个"全屏显示"按钮(链接),点击全屏后执行函数fullScreen(),然后"显示全屏"二字变成"退出全屏":2.点击"退出全屏"执行函数exitFullScreen(),然后"退出全屏"变为"全屏显示" function fullScreen() { var el = document.do

JS 全屏和退出全屏详解及实例代码_基础知识

JS 全屏和退出全屏 js实现浏览器窗口全屏和退出全屏的功能,市面上主流浏览器如:谷歌.火狐.360等都是兼容的,不过IE低版本有点瑕疵(全屏状态下仍有底部的状态栏). 这个demo基本是够了,直接复制下面的源码另存为html文件看效果吧. <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <

js全屏和退出全屏代码范例

js实现浏览器窗口全屏和退出全屏的功能,市面上主流浏览器如:谷歌.火狐.360等都是兼容的,不过IE低版本有点瑕疵(全屏状态下仍有底部的状态栏). 这个demo基本是够了,直接复制下面的源码另存为html文件看效果吧. <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>j

想给网站上图片加水印。

问题描述 想给网站上图片加水印.只需要给有些图片加水印.没有上传图片的功能.求代码,,,方法 解决方案 解决方案二:文字水印百度搜一下吧就几句代码很简单的解决方案三:引用1楼longlong881129的回复: 文字水印百度搜一下吧就几句代码很简单的 我很菜的解决方案四:///<summary>///添加水印方法(JPG图片)///</summary>///<paramname="filepath">原始图片路径</param>///&l

fullpage.js全屏滚动插件使用实例_javascript技巧

刚做好公司网站,通过全屏滚动,显著提高了官网的浏览体验.遂总结一下使用fullpage.js的方法.欢迎指正 一. fullpage.js简介   fullpage.js是一套实现浏览器全屏滚动的js插件,很多网站现在都使用了其来实现较好的浏览体验.  可以实现的功能:  •支持前进后退和键盘控制  •多个回调函数  •支持手机.平板触摸事件  •支持 CSS3 动画  •支持窗口缩放  •窗口缩放时自动调整  •可设置滚动宽度.背景颜色.滚动速度.循环选项.回调.文本对齐方式等等  二.插件下

jQuery插件fullPage.js实现全屏滚动效果_jquery

本文实例为大家分享了全屏滚动插件fullPage.js的具体使用方法,供大家参考,具体内容如下 0.01 基本演示  的HTML 布局 以及js 代码 //需要连接 连接的三个文件 <link rel="stylesheet" href="css/jquery.fullPage.css"> //css文件 <script src="js/jquery-1.8.3.min.js"></script> //jQue

全屏滚动插件fullPage.js使用实例解析_javascript技巧

如今我们经常能看见到全屏网站,尤其是国外玩站.这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次.而JQuery的一款插件fullpage.js,可以实现全屏滚动,非常流行的效果,兼容性IE8+兼容性不错,能够兼容多种浏览器. 主要功能有: 支持鼠标滚动 支持前进后退和键盘控制 多个会调函数 支持手机.平板触摸事件 支持CSS3动画 支持窗口缩放 窗口缩放时自动调整 可设置滚动宽度.背景颜色.滚动速度.循环选项.回调.文本对齐方式等等 准备工作(下载jquery

JS禁用页面上所有控件的实现方法(附demo源码下载)_javascript技巧

本文实例讲述了JS禁用页面上所有控件的实现方法.分享给大家供大家参考,具体如下: 利用页面元素的特征,可以捕捉到所有元素. function DisableElements(container,blnHidenButton) { if (!container) return; var aEle; if (navigator.appName =="Microsoft Internet Explorer") //IE { for (var i=0;i<container.all.le

ie 11-IE11 js参数错误,想知道问题出在哪里

问题描述 IE11 js参数错误,想知道问题出在哪里 一个08年的asp.net程序,想同的环境,连机器都是一样的,为什么我的电脑上运行是总是报js的参数错误,测试起来很麻烦,求问题的根源所在 解决方案 08年到现在7年了,,可能是浏览器兼容的问题 解决方案二: 贴出你的错误信息.你这样说神都帮不了你 解决方案三: web.cofig没配置好,而且什么错误也没说..IE11去掉了很多dom特性,自己检查下IE11 javascript及相关兼容性更新