热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTML5拖放过程中没有关键事件

如何解决《HTML5拖放过程中没有关键事件》经验,为你挑选了1个好方法。

我有一个广泛使用Html5拖放的屏幕,除了拖动时的滚动行为外,它运行良好。当您拖动到窗口的边缘时,屏幕将滚动,但效果不佳。现在,用户不介意是否可以简单地使用向上/向下箭头或向上/向下页面滚动键,但这显然不起作用!使用旧式拖放技术(例如jquery.ui.draggable),就不会出现此问题,仅当使用draggable =“ true”方法时才存在。

我以为我可以捕捉到事件并提供msyelf这种行为。因此,我进行了一些测试,并将事件处理程序绑定到window.keydown和window.keyup并猜出了什么:我测试过的浏览器都没有在拖动时触发任何键事件。

$(window).keyup(function() {
    $('#log').append('
key up
'); }); $(window).keydown(function() { $('#log').append('
key down
'); }); $(window).keypress(function() { $('#log').append('
key press
'); });

小提琴:按下一个键,然后开始拖动span元素,并在拖动时尝试再次按下一个键(您可能必须先单击“结果”窗格以使其具有焦点)

https://jsfiddle.net/Davy78/xkddhzts/2/

这很愚蠢,我无法向用户提供此简单功能请求。有人知道任何解决方法吗?



1> 小智..:

html5拖放api仅允许在拖动过程中按下“修饰键”。这意味着可以注意到诸如shift,control,alt,command之类的键(如果在Mac上)。

有关是否按下这些键的信息,可以在拖动事件中找到。其他事件侦听器在拖动期间不会注意到它们。

例如

function onDrag(event) {
    if (event.shiftKey) {
        $('#log').append('
Shift is pressed!
'); } }

但是,只有在dataTransfer对象上设置了正确的“ effectAllowed”后,事件才会保存信息。

这些键的原始用途是修改放置的效果。就像Shift键一样,指示您要拖动来进行复制而不是移动。可以在dataTransfer对象上设置“ effectAllowed”,并且修饰键只能在特定的允许效果下使用。(https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_operations#drageffects)

如果希望所有修改键都可用,则可以设置:

event.dataTransfer.effectAllowed = 'all';

要查看结果的演示,请在此处查看:https : //jsfiddle.net/xkddhzts/6/

尝试拖动文本,然后同时按shift。


推荐阅读
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • FileReader详解与实例---读取并显示图像文件
    我们曾经在《HTML5中File对象初探》中,使用到了FileReader,在那篇文章中,它被用来将一个文件读取为二进制字符串,并通过xhr发送到后端形成交互。作为FileAPI的一部 ... [详细]
  • 活动主题:五一巨献,问答有礼,105QB送给IT互联网界的劳动人民活动时间:4月30日晚上10点~5月2日晚上10点网址:http:ask.jiutianniao.com ... [详细]
  • HowcanIaligntwoinline-blockssothatoneisleftandtheotherisrightonthesameline?Whyi ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • Hyperledger Fabric 1.4 节点 SDK 快速入门指南
    本文将详细介绍如何利用 Hyperledger Fabric 1.4 的 Node.js SDK 开发应用程序。通过最新版本的 Fabric Node.js SDK,开发者可以更高效地构建和部署基于区块链的应用,实现数据的安全共享和交易处理。文章将涵盖环境配置、SDK 安装、示例代码以及常见问题的解决方法,帮助读者快速上手并掌握核心功能。 ... [详细]
author-avatar
V陈冬梅_717
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有