基于 zepto 的触摸函数封装

移动端使用 zepto 做一些基于触摸的动画的时候,需要开发一个函数库。

功能:实例化对象以后能够,触发相应的事件,能够返回给我,当前的移动方向和 X 轴 或者 Y 轴 的移动位移。

var TouchDirection = function(e) {
    var startThat = {},
        moveThat = {};

    this.touchStartEven = function(e) {

        startThat.startX = e.touches[0].pageX;
        startThat.startY = e.touches[0].pageY;
        this.startThat = startThat;

        return this;
    };

    this.touchMoveEven = function(e) {
        moveX = e.touches[0].pageX;
        moveY = e.touches[0].pageY;

        tempX = this.startThat.startX - moveX;
        tempY = this.startThat.startY - moveY;
        absTempX = Math.abs(tempX);
        absTempY = Math.abs(tempY);
        angleTouch = absTempX / absTempY;

        if (tempX < 0 && angleTouch >= 1) {
            //鼠标右滑动
            moveThat.direction = ‘right‘;
            moveThat.moveX = absTempX;
            this.moveThat = moveThat;

            return this;
        }
        if (tempX > 0 && angleTouch >= 1) {
            //鼠标左滑动
            moveThat.direction = ‘left‘;
            moveThat.moveX = absTempX;
            this.moveThat = moveThat;

            return this;

        }
        if (tempY > 0 && angleTouch < 1) {
            //上滑
            moveThat.direction = ‘up‘;
            moveThat.moveY = absTempY;
            this.moveThat = moveThat;

            return this;
        }

        if (tempY < 0 && angleTouch < 1) {
            //下滑
            moveThat.direction = ‘down‘;
            moveThat.moveY = absTempY;
            this.moveThat = moveThat;

            return this;
        }
    };

    this.touchEndEven = function(){
        this.startThat = null;
        this.moveThat = null;
    };
};

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65

使用方法:

var touchResult = new TouchDirection();

var touchStartEv = function(e){
    var that = touchResult.touchStartEven(e);
    console.log(that.startThat);
};

var touchMoveEv = function(e) {
    var that = touchResult.touchMoveEven(e);
    console.log(that.moveThat);
};

var touchEndEv = function(e) {
    var that = touchResult.touchEndEven(e);
};

$(‘.test‘).on(‘touchstart‘, touchStartEv);
$(‘.test‘).on(‘touchmove‘, touchMoveEv);
$(‘.test‘).on(‘touchend‘, touchEndEv);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

测试的运行结果:

实例 demo 地址:点我



如果您觉得对您有帮助,请点击下面的 star 给我一颗星。谢谢啦!

时间: 2024-10-11 22:53:55

基于 zepto 的触摸函数封装的相关文章

基于zepto的插件之移动端无缝向上滚动并上下触摸滑动

该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 公司的移动端项目是基于zepto的,有一个页面要求文字能够无缝地不停向上滚动,但查了网上的资料,大多都是基于jquery的,虽然稍作修改就可以用于移动端,但不能实现触摸上下翻滚.所以就去了zepto的官网查看其API,却发现如果要使用zepto的swipe()方法,需要引用其已经封装好的touch.js文件,我就赶紧引用了这个js文件,可在实际测试中,官网给出的touch.js文件

基于sqlite的Qt 数据库封装

[代码] mydata.h 10 #ifndef MYDATA_H 11 #define MYDATA_H 12 #include <QObject> 13 #include <QString> 14 #include <QtSql/QSqlTableModel> 15 #include <QtSql/QSqlQuery> 16 #include <QStringList> 17 #include <QtSql/QSqlDatabase&g

前端-【学习心得】-自己定义一个触摸函数

我们平时制作移动端的web项目的时候通常会使用到zept,jqmobile这样的移动端框架,他们都对触摸事件做好了封装,也就是说不论你是鼠标点击或者触摸都能得到响应.但是这些移动的框架有时候会显得过于庞大,对于性能方面也会有影响,所以最好的办法是自己定义触摸事件. 原理是首先检测浏览器的触摸函数,如果存在就使用触摸,如果不存在就使用click,下面贴出代码,代码源码出自h5触摸一书.   (function(){           var TOUCHSTART, TOUCHEND;     

基于Zepto的Alert提示框开源框架Tiny-Alert

项目主页:http://shootyou.github.io/Tiny-Alert/ 什么是Tiny-Alert? 这是一个基于Zepto的提示框插件,在移动端使用会有更好的效果.它被设计成是移动端原生alert和confirm提示框的更美观替代品.同时它还实现了一个loading效果.它的核心代码参考了rDailog,在它基础上适配了zepto,去掉了移动端用不到的特性,另外让它看上去更美观了. 它有如下特性: 轻量级,代码量不超过300行,压缩后仅2k. 基于zepto更适合移动端. 支持回

基于zepto.js的模仿手机QQ空间的大图查看组件ImageView.js

调用方式 :ImageView(index,imgData)  --index参数 为图片默认显示的索引值,类型 为Number  --imaData参数 为图片url数组 ,类型为Array 使用之前要先引入 zepto.js 文件 ImageView.js具体代码如下: /* * ImageView v1.0.0 * --口袋蓝房网 基于zepto.js的大图查看 * --调用方法 ImageView(index,imgDada) * --index 图片默认值显示索引,Number --i

div盒子的缓动函数封装

1.2.  缓动动画 1.2.1.       原理公式 动画公式 leader = leader + step 匀速动画公式 step = 定值 leader = leader + step 缓动动画公式 step = ( target - leader ) / 10 leader = leader + step 缓动动画的好处 他的移动是有尽头的.不像基础匀速运动那样无限移动. 有非常逼真的缓动效果,实现的动画效果更细腻. 如果不清除定时器,物体永远跟着目标leader在移动. @体验缓动动

基于zepto的手机焦点图touchstart touchmove

基于zepto的手机焦点图,查看地址:demo (建议使用手机浏览器查看)代码如下: <!DOCTYPE HTML> <html> <head> <title>zepto实现手机网站焦点图触屏划动效果</title> <meta content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" name="view

用工厂函数封装对象

工厂函数是在方法中建立一个Object空对象,然后再对此对象添加属性和方法,然后把Object对象返回 <html> <head> <title>工厂函数封装对象</title> <script type="text/javascript"> // 工厂函数模式封装对象 //特点:返回结果为对象的函数,在用工厂函数创建对象的时候,一定要new function fn(nianling){ var obj=new object(

第5章 用函数封装程序功能

第5章 用函数封装程序功能 5.1 函数就是一个大"箱子" 5.1.1 函数的声明和定义 5.1.2 函数调用机制 5.1.3 函数的声明与函数调用 5.1.4 函数参数的传递 5.1.5 函数的返回值 5.2 内联函数 5.2.1 用体积换速度的内联函数 5.2.2 内联函数的使用规则 5.3 重载函数 5.3.1 重载函数的声明 5.3.2 重载函数的解析 5.4 函数设计的基本规则 5.4.1 函数声明的设计规则 5.4.2 函数体的设计规则 TOP