您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
jQuery-Extensions-touchJS是一个非常简单的jQuery touch扩展,用于适配移动端的常用touch操作(点击tab、长按longPress、滑动left right up down)
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/454450/1114716/jQuery-Extensions-touchJS.js
// ==UserScript== // @name jQuery-Extensions-touchJS // @namespace http://tampermonkey.net/ // @version 1.1 // @description jQuery-Extensions-touchJS是一个非常简单的jQuery touch扩展,用于适配移动端的常用touch操作(点击tab、长按longPress、滑动left right up down) // @author tutu辣么可爱(greasyfork)/IcedWatermelonJuice(github) // @grant none // ==/UserScript== (function($) { if (typeof $ !== "function" && typeof jQuery !== "function") { console.log("jQuery-Extensions-touchJS 缺少jQuery依赖") return false; } $.fn.touch = function(v, fn) { // 预处理 var defFn = function() { return false }, fnMap = { "def": defFn, "left": defFn, "right": defFn, "top": defFn, "down": defFn, "tap": defFn, "longPress": defFn, "longPressCancel": defFn }; if (typeof v === "string" && typeof fn === "function" && fnMap.hasOwnProperty(v)) { fnMap[v] = fn; } else if (typeof v === "object" && !fn) { fnMap = $.extend({}, fnMap, v); } // 正式处理 if (v) { var t = $(this), i = -1, x = -1, l = false, x1, x2, y1, y2; t[0].addEventListener('touchstart', ts, false); t[0].addEventListener('touchmove', tm, false); t[0].addEventListener('touchend', te, false); //具体实现 function init(e, flag) { //初始化 if (flag !== false) { e = e || window.event e.preventDefault(); } clearTimeout(x); clearTimeout(i); x = -1, i = -1; return e; } function dir(x1, y1, x2, y2) { //判方向 if (Math.abs(y2 - y1) < Math.abs(x2 - x1)) { if (x2 > x1) { return "right" } else { return "left" } } else { if (y2 > y1) { return "down" } else { return "up" } } return "def" } function ts(e) { //touchstart var e = init(e); x1 = e.changedTouches[0].clientX; y1 = e.changedTouches[0].clientY; i = setTimeout(function() { l = true; fnMap["longPress"](); }, 600) } function tm(e) { //touchmove var e = e || window.event; x2 = e.changedTouches[0].clientX; y2 = e.changedTouches[0].clientY; if (Math.abs(x1 - x2) > 10 || Math.abs(y1 - y2) > 10) { init(e); fnMap[dir(x1, y1, x2, y2)]() } } function te(e) { //touchend var e = init(e); if (l) { l=false; fnMap["longPressCancel"](); } else { fnMap["tap"](); } } } return $(this) } })(jQuery);