js & touch & swiper
js & touch & swiper
https://developer.mozilla.org/en/docs/Web/API/Touch_events
"use strict";
/**
 *
 * @author xgqfrms
 * @license MIT
 * @copyright xgqfrms
 * @created 2019-01-01
 *
 * @description touchApp
 * @augments
 * @example
 *
 */
function load() {
    document.addEventListener("touchstart", touch, false);
    document.addEventListener("touchmove", touch, false);
    document.addEventListener("touchend", touch, false);
    function touch(event) {
        var event = event || window.event;
        var oInp = document.getElementById("inp");
        switch (event.type) {
            case "touchstart":
                oInp.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";
                break;
            case "touchend":
                oInp.innerHTML = "<br>Touch end (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";
                break;
            case "touchmove":
                event.preventDefault(); oInp.innerHTML = "<br>Touch moved (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";
            break;
        }
    }
}
window.addEventListener("load", load, false);
// const touchApp = (datas = [], debug = false) => {
//     let result = ``;
//     // do something...
//     return result;
// };
// export default touchApp;
// export {
//     touchApp,
// };


single click
the order of events
touchstart
touchmove
touchend
mouseover
mousemove
mousedown
mouseup
click
https://www.html5rocks.com/en/mobile/touchandmouse/
https://www.w3schools.com/jsref/obj_touchevent.asp
http://javascriptkit.com/javatutors/touchevents.shtml
http://fabricjs.com/touch-events
http://tutorials.jenkov.com/responsive-mobile-friendly-web-design/touch-events-in-javascript.html
https://hammerjs.github.io/touch-emulator/
https://github.com/hammerjs/touchemulator
Swiper
https://idangero.us/swiper/get-started/
https://github.com/nolimits4web/swiper/blob/master/src/swiper.js
// Swiper Class
import Swiper from './components/core/core-class';
// Core Modules
import Device from './modules/device/device';
import Support from './modules/support/support';
import Browser from './modules/browser/browser';
import Resize from './modules/resize/resize';
import Observer from './modules/observer/observer';
//IMPORT_COMPONENTS
const components = [
  Device,
  Support,
  Browser,
  Resize,
  Observer,
  //INSTALL_COMPONENTS
];
if (typeof Swiper.use === 'undefined') {
  Swiper.use = Swiper.Class.use;
  Swiper.installModule = Swiper.Class.installModule;
}
Swiper.use(components);
//EXPORT
demo
https://codepen.io/webgeeker/pen/rEZPGV
javascript swipe event
https://developer.mozilla.org/en-US/docs/Web/API/Touch_events/Using_Touch_Events
https://css-tricks.com/simple-swipe-with-vanilla-javascript/
http://www.javascriptkit.com/javatutors/touchevents2.shtml
http://javascriptkit.com/javatutors/touchevents.shtml
document.addEventListener('touchstart', handleTouchStart, false);
document.addEventListener('touchmove', handleTouchMove, false);
var xDown = null;
var yDown = null;
function getTouches(evt) {
  return evt.touches ||             // browser API
         evt.originalEvent.touches; // jQuery
}                                                     
function handleTouchStart(evt) {
    const firstTouch = getTouches(evt)[0];
    xDown = firstTouch.clientX;
    yDown = firstTouch.clientY;
};                                                
function handleTouchMove(evt) {
    if ( ! xDown || ! yDown ) {
        return;
    }
    var xUp = evt.touches[0].clientX;
    var yUp = evt.touches[0].clientY;
    var xDiff = xDown - xUp;
    var yDiff = yDown - yUp;
    if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {/*most significant*/
        if ( xDiff > 0 ) {
            /* left swipe */
        } else {
            /* right swipe */
        }
    } else {
        if ( yDiff > 0 ) {
            /* up swipe */
        } else {
            /* down swipe */
        }
    }
    /* reset values */
    xDown = null;
    yDown = null;
};
class Swipe {
    constructor(element) {
        this.xDown = null;
        this.yDown = null;
        this.element = typeof(element) === 'string' ? document.querySelector(element) : element;
        this.element.addEventListener('touchstart', function(evt) {
            this.xDown = evt.touches[0].clientX;
            this.yDown = evt.touches[0].clientY;
        }.bind(this), false);
    }
    onLeft(callback) {
        this.onLeft = callback;
        return this;
    }
    onRight(callback) {
        this.onRight = callback;
        return this;
    }
    onUp(callback) {
        this.onUp = callback;
        return this;
    }
    onDown(callback) {
        this.onDown = callback;
        return this;
    }
    handleTouchMove(evt) {
        if ( ! this.xDown || ! this.yDown ) {
            return;
        }
        var xUp = evt.touches[0].clientX;
        var yUp = evt.touches[0].clientY;
        this.xDiff = this.xDown - xUp;
        this.yDiff = this.yDown - yUp;
        if ( Math.abs( this.xDiff ) > Math.abs( this.yDiff ) ) { // Most significant.
            if ( this.xDiff > 0 ) {
                this.onLeft();
            } else {
                this.onRight();
            }
        } else {
            if ( this.yDiff > 0 ) {
                this.onUp();
            } else {
                this.onDown();
            }
        }
        // Reset values.
        this.xDown = null;
        this.yDown = null;
    }
    run() {
        this.element.addEventListener('touchmove', function(evt) {
            this.handleTouchMove(evt).bind(this);
        }.bind(this), false);
    }
}
class demo
// Use class to get element by string.
var swiper = new Swipe('#my-element');
swiper.onLeft(function() { alert('You swiped left.') });
swiper.run();
// Get the element yourself.
var swiper = new Swipe(document.getElementById('#my-element'));
swiper.onLeft(function() { alert('You swiped left.') });
swiper.run();
// One-liner.
(new Swipe('#my-element')).onLeft(function() { alert('You swiped left.') }).run();
https://codepen.io/ganmahmud/pen/RaoKZa
swiper
https://github.com/nolimits4web/swiper
xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
js & touch & swiper的更多相关文章
- Zepto.js touch模块深入分析
		
目的:记录 Zepto.js touch模块 源码阅读 源码: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely ...
 - iScroll.js和swiper.js
		
最近系统地学习了iScroll.js和swiper.js,感觉它们在移动端特别好用:http://www.360doc.com/content/14/0724/11/16276861_39669990 ...
 - H5 适配 动画animation js touch
		
图片预加载jquery插件 jquery.imgpreload var load_img = [];load_img.push('http://m.pubuzhixing.com/Images/vot ...
 - js Touch事件(向左滑动,后退)
		
js Touch事件(向左滑动,后退) 代码如下 var touch_p = { c_x : 0, c_y : 0, hasbacked : false }; function touches(ev) ...
 - js touch触屏原理分析
		
之前我们做过许多触屏的特效,那么,今天,我们来分析下js的触屏原理.事实上,大家百度一下js touch基本上可以找到这文章“指尖下的js ——多触式web前端开发之一:对于Touch的处理”,我想这 ...
 - 《.NET最佳实践》与Ext JS/Touch的团队开发
		
概述 持续集成 编码规范 测试 小结 概述 有不少开发人员都问过我,Ext JS/Touch是否支持团队开发?对于这个问题,我可以毫不犹豫的回答:支持.原因是在Sencha官网博客中客户示例中,有不少 ...
 - Vue.js 使用 Swiper.js 在 iOS 11 时出现错误
		
前言 在H5项目中,需要用到翻页效果,通过 Swiper 来实现,安装 Swiper npm i swiper -S 但是实际使用中,发现低版本 iOS < 11 会出现下面这个错误: Synt ...
 - web & js & touch & gesture
		
web & js & touch & gesture 触摸 & 手势 https://caniuse.com/#feat=touch js https://develo ...
 - js & touch & pull down & load more
		
js & touch & pull down & load more https://www.jianshu.com/p/93597d6bd77d index-list htt ...
 
随机推荐
- 关于js中each()使用return不能终止循环
			
Jquery的each里面用return false代替break:return ture代替continue $(xx).each(function() { if(xx){ return false ...
 - Spring Filter过滤表单中的非法字符
			
使用Spring Filter过滤表单中的非法字符 1 package test.filter; 2 3 import java.io.IOException; 4 import java.util. ...
 - yuan先生博客地址
			
1 Web应用 https://www.cnblogs.com/yuanchenqi/articles/8869302.html2 http协议 https://www.cnblogs.com/yu ...
 - C++基本之--静态成员函数和静态成员变量
			
#include <iostream> using namespace std; class Internet { public: Internet(char *name,char *ad ...
 - Leetcode LRU缓存,数组+结构体实现
			
一.算法思路 LRUCache类有以下函数和变量: LRUCache(int capacity): capacity是当前对象能够存储的键值对(key,value)最大个数. int get(int ...
 - 一篇文章搞定Java注解^_^
			
0.序言 自己写这些文章本来想着自己系统的整理下知识,将知识串起来,后面复习用,或者以后年龄大了,去教育机构呀,拿出自己整理的笔记,你看这人爱总结爱分享,文笔也还能看,方便找工作不是. 很开心的是,有 ...
 - Hive 中日志的存放位置
			
目前hive启动无法成功,想查看下hive的日志定位问题,但发现hive的安装目录下并没有hive的日志,后来经过在网上谷歌发现: Hive中的日志分为两种 系统日志,记录了hive的运行情况,错误状 ...
 - 牛客小白月赛30  J.小游戏  (DP)
			
题意:给你一组数,每次可以选择拿走第\(i\)个数,得到\(a[i]\)的分数,然后对于分数值为\(a[i]-1\)和\(a[i]+1\)的值就会变得不可取,问能得到的最大分数是多少. 题解:\(a[ ...
 - 8.PowerShell DSC之Push
			
前言 LCM的默认mode就是push,所以对于push模式,我们直接就三步走 以下是示例: 1.编写配置 Authoring Configuration WebsiteTest { # Import ...
 - 4.PowerShell DSC核心概念之配置
			
什么是配置 DSC 配置是定义某一特殊类型函数的 PowerShell 脚本. 配置的语法 Configuration MyDscConfiguration { #配置块 Import-DscReso ...