在移动设备上使用 mootool 拖动

2023-11-22

有没有办法让 mootools 类“Drag”在 Safari 移动设备上工作? 请不要将我链接到其他框架。


这是我使 Mootools Drag 支持触摸事件的解决方案。此方法不需要我编辑 mootools more 文件,因为我使用了 Class.refactor (仅使用 Mootools v.1.3.1 进行了测试)——它也不会破坏通常的点击事件

Class.refactor(Drag,
    {
        attach: function(){
            this.handles.addEvent('touchstart', this.bound.start);
            return this.previous.apply(this, arguments);
        },

        detach: function(){
            this.handles.removeEvent('touchstart', this.bound.start);
            return this.previous.apply(this, arguments);
        },

        start: function(event){
            document.body.addEvents({
                touchmove: this.bound.check,
                touchend: this.bound.cancel
            });
            this.previous.apply(this, arguments);
        },

        check: function(event){
            if (this.options.preventDefault) event.preventDefault();
            var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));
            if (distance > this.options.snap){
                this.cancel();
                this.document.addEvents({
                    mousemove: this.bound.drag,
                    mouseup: this.bound.stop
                });
                document.body.addEvents({
                    touchmove: this.bound.drag,
                    touchend: this.bound.stop
                });
                this.fireEvent('start', [this.element, event]).fireEvent('snap', this.element);
            }
        },

        cancel: function(event){
            document.body.removeEvents({
                touchmove: this.bound.check,
                touchend: this.bound.cancel
            });
            return this.previous.apply(this, arguments);
        },

        stop: function(event){
            document.body.removeEvents({
                touchmove: this.bound.drag,
                touchend: this.bound.stop
            });
            return this.previous.apply(this, arguments);
        }
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在移动设备上使用 mootool 拖动 的相关文章

  • zone.js:140未捕获类型错误:无法读取属性“删除”

    我是 kendo ui 的新手 我在小提琴中开发了原型 删除确认窗口在那里工作正常 但是当我集成到我的代码库中时 我收到错误 Cannot read property remove at the line pai to delete rem
  • 有没有办法在javascript中代理(拦截)一个类的所有方法?

    我希望能够在类本身的构造函数内代理类的所有方法 class Boy constructor proxy logic do something before each call of all methods inside class like
  • JavaScript 支持逐字字符串吗?

    在 C 中 您可以像这样使用逐字字符串 server share file txt JavaScript中有类似的东西吗 模板字符串支持换行 so you can do this if you want https developer mo
  • 如何动态删除嵌套的json键?

    这是示例 json search facets author language value nep count 3 value urd count 1 source value West Bengal State Council of Vo
  • querySelector 搜索直接子级[重复]

    这个问题在这里已经有答案了 我有一些类似 jquery 的函数 function elem return gt someselector elem 问题是我怎样才能做同样的事情querySelector 问题是 gt 选择器中querySe
  • React Native 无法访问 Cloud Firestore 后端

    我之前使用的是 firebase 实时数据库 但现在想切换到 Cloud Firestore 但即使经过身份验证 也会收到以下错误 我目前正在使用 Android Simulator 尝试禁用我的实时数据库 但找不到解决方案 Firebas
  • 使用 babel env 预设时,展开运算符出现语法错误

    我正在努力 现代化 meern io 入门样板 https github com Hashnode mern starter通过替换巴别塔es2015 and stage 0预设为env 然而 似乎env预设无法识别以下片段client m
  • 是否有任何理由使用 axios 而不是 ES6 fetch [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 研究了 axios 和 ES6 fetch 的文档 我发现两者非常相似 并且都受到 ajax 及其简写的强烈影响 axios 的主要优点是浏览器
  • 如何在单击按钮时清除反应挂钩中的间隔

    我正在用反应钩子构建一个简单的计时器 我有两个按钮启动和重置 当我单击开始按钮时 handleStart 函数工作正常 计时器启动 但我不知道如何在单击重置按钮时重置计时器 这是我的代码 const App gt const timer s
  • 如何使用 github 托管外部 CSS 文件?

    我将 css 上传到 github 然后转到网站上的文件并单击 raw 选项 我尝试将其添加到网页中 但 chrome 给出以下错误 资源解释为样式表 但使用 MIME 类型 text plain 进行传输 https raw github
  • 为什么浏览器允许onmousedown JS改变href?

    我很长时间以来都注意到 当您尝试复制链接位置或在 Facebook 上打开链接时 它会修改链接并将其传递给l php 例如 我可以被发送到 http www facebook com l php u http 3A 2F 2Fwww goo
  • 即使我的情况按预期发生变化,Angular ngClass 也不会更新我的课程

    我正在创建的模板中有类似的内容 div class nng 3 div 价值app layout isNavbarFixed等用零或一初始化 并且页面第一次加载时 适当的类被插入到我的div 不过 此后通
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • JavaScript setTimeout 和更改系统时间会导致问题

    我注意到如果我设置setTimeout未来1分钟 然后将我的系统时间更改为过去5分钟 setTimeout功能将在 6 分钟后触发 我这样做是因为我想看看夏令时系统时钟更改期间会发生什么 我的 JavaScript 网页使用setTimeo
  • 如何禁用网页中的萤火虫?

    如何使用 Javascript 禁用 firebug 我想这样做是为了向访问者隐藏我的网页的运作方式 有什么选择可以做到这一点吗 你不能 你能做的最好的事情就是混淆你的 JavaScript 实际上刮掉了 您能做的最好的事情就是将所有安全关
  • jQuery:向左滑动和向右滑动

    我见过slideUp and slideDown在 jQuery 中 左右滑动的功能 方式怎么样 您可以使用 jQuery UI 中的附加效果来做到这一点 详情请参阅此处 http docs jquery com UI Effects Sl
  • Android - 如何简单地拖放按钮?

    我在这里找到了一个适合初学者的教程 http androidrox wordpress com 2011 05 13 android sample app drag and drop image using touch http andro
  • 获取类中的所有静态 getter

    假设我有这个类 我像枚举一样使用它 class Color static get Red return 0 static get Black return 1 有没有类似的东西Object keys to get Red Black 我使用
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1

随机推荐

  • 谷歌地图与离子

    我正在尝试使用 google 地图和 Ionic 来实现地图 我按照这个编码Link但我得到的只是一个空白屏幕 不知道哪里出了问题 请帮忙 这是控制器 angular module starter ionic controller MapC
  • 如何从日期时间创建日期(使用 lubridate)?

    假设我创建了一个包含日期和时间的变量 a lt ymd hms 2014 01 01 12 23 34 如何创建另一个只有日期的变量 也就是我应该怎么做才能转型a的值等于b的值在哪里b is b lt ymd 2014 01 01 你可以只
  • 如何在按下返回键时快速隐藏键盘?

    I am using UITextfied while clicking on textfied keyboard appear but when i pressed the return key keyboard is not disap
  • password_hash、password_verify、MySQL的误解?

    我似乎无法让这个测试显示数据库中的哈希密码 它可以很好地显示表单中的密码 尝试进行此测试以找出为什么我无法将表单中的密码与数据库中存储的密码进行比较来验证密码 我读到了一些关于转义哈希中的 符号的内容 但我不确定如何使用我正在使用的代码来做
  • locale什么时候影响R的正则表达式?

    R 有几个用于正则表达式的特殊的与语言环境无关的字符类 From regex alnum 表示 0 9A Za z 后者除外 取决于区域设置和字符编码 而 前者独立于区域设置和字符集 我想知道何时会出现特定于区域设置的问题 我根据中的信息尝
  • Powerpoint:手动设置幻灯片名称

    Context C 中的 PowerPoint 幻灯片有一个属性 Slide Name 通常包含任意字符串值 在我的 C 应用程序中 我想使用此属性来识别幻灯片 幻灯片顺序不可靠 问题 如何在 PowerPoint 应用程序中手动设置 Sl
  • 免费网络监控器

    我在集成两种产品时遇到问题 其中一种是我的 但它们似乎没有说话 所以我想确保他们的沟通正确 我查看了网络监视器并发现了 TCP Spy 这有效 但一次只显示对话的一侧 它必须在本地运行 我理想情况下希望同时看到双方 但你不能运行 TCP S
  • 在 Ruby 中实现同步屏障

    我正在尝试 复制 CUDA 的行为 synchtreads Ruby 中的函数 具体来说 我有一组N需要执行某些代码的线程 然后在继续执行其余业务之前 所有线程都在执行中点互相等待 例如 x 0 a Thread new do x 1 sy
  • wait_fences:未能收到回复:10004003 - 什么?

    一直收到这个奇怪的错误 事情是这样的 在下面的方法中 我会出现一个警报视图 获取 U N 和 PW 然后尝试启动另一个方法 方法 postTweet 没有被激活 我刚刚在控制台中收到此错误 wait fences failed to rec
  • 如何在不使用 as 的情况下确保 TypeScript string|string[] 是字符串?

    edit由于时间的推移 这个问题从对此的评论和回答看来 它已经失去了有效性 尽管最初出现 但它并不是这个的骗局 我有一个翻译功能 通过以下签名工作 getI18n id string string 我注意到输入以下内容有点乏味 const
  • 从文本视图中删除粗体而不更改其他属性

    I use setTypeface设置文本粗体 或斜体 或其他字体属性 TextView tv findViewById R id label tv setTypeface null Typeface BOLD 如何仅删除粗体属性 而不更改
  • 在 Java 中将列表复制回数组以及反之亦然的时间复杂度是多少?

    我想知道时间复杂度是多少 in bigO n 的符号 ArrayList to Array转换 ArrayList assetTradingList new ArrayList assetTradingList add Stocks tra
  • 这里如何推断泛型类型?

    public static void main String args Map
  • SQL允许相同的列名

    当我在 SQL Server 中运行此查询时 SELECT custid AAA companyname AAA FROM Sales Customers WHERE country USA 运行良好 但现在结果集有重复的列名 AAA 为什
  • 如何查询bigquery表中存储为字符串的json?

    如何查询bigquery表中存储为字符串的json 我有一个表 其中列中的值 subscriptions 看起来像这样 data application fee percent null canceled at null created 1
  • Jupyter 笔记本中未显示散景

    我无法在 Jupyter Notebook 中绘制最基本的散景图 我进行了搜索 发现这是一年多前报告的问题 但此后就没有了 这对其他人来说仍然是一个问题吗 from bokeh io import output notebook show
  • 当大小是变量而不是常量时如何创建数组?

    我有一个接收变量 int 的方法 该变量构成了一个数组大小 请不要向我提供向量 因此 我需要在我的方法中初始化一个 const int 来初始化特定大小的数组 问题 我该怎么做 void foo int variable int int a
  • 获取要传播的附加属性继承

    我无法获取附加属性值以在视觉层次结构中将树从父项传播到子项 设置如下 我有一个实例化 Viewport3D 的自定义面板 然后 面板处理添加和删除的子项 为每个子项创建和添加继承的 Visual3D 类 我正在尝试声明一个名为 Attach
  • 如何从 ASP.NET Identity Core 2.0 中删除与角色相关的表

    根据在其他地方读到的建议 角色是声明的子集 我正在寻找一种干净的方法来要求 ASP NET Identity 中的 EF Core 实现不要在 VS 的 ASP NET Identity Core 2 0 模板中创建与角色相关的表2017
  • 在移动设备上使用 mootool 拖动

    有没有办法让 mootools 类 Drag 在 Safari 移动设备上工作 请不要将我链接到其他框架 这是我使 Mootools Drag 支持触摸事件的解决方案 此方法不需要我编辑 mootools more 文件 因为我使用了 Cl