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

css元素可拖动,如何使用CSS禁止元素拖拽?

一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入

407d69a52909d5730987a7bfa478760e.png

一、用户行为三剑客

以下3个CSS属性:

user-select属性可以设置是否允许用户选择页面中的图文内容;

user-modify属性可以设置是否允许输入框输入内容,以及是否只允许输入纯文本,详见“如何让contenteditable元素只能输入纯文本”一文;

user-drag属性可以设置是否允许页面元素拖拽。

而本文要介绍的主角就是最后的user-drag属性。

二、user-drag禁止拖拽

页面中的图文元素设置-webkit-user-drag:none,则该元素就无法拖拽了。

我们通过下面这个案例了解下对应的效果。

有两张图片,一张是默认的UI样式,另外一张设置禁止拖拽的CSS代码,相关HTML和CSS代码如下所示:

by%20zhangxinxu.jpg

by%20zhangxinxu.jpg

.user-drag {

-webkit-user-drag: none;

}

结果,默认图片拖拽的时候,会看到一个半透明的图片飞出来,就像这样:

3ad7a1e255911733a227463207909662.png

而设置了禁止拖拽的图片,点击拖拽的时候,是没有任何效果的:

07789f65bfbe0a90b64dc07d76204963.png

//zxx: 如果你看到这段文字,说明你现在访问是体验糟糕的垃圾盗版网站,你可以访问原文获得很好的体验:https://www.zhangxinxu.com/wordpress/?p=9969(作者张鑫旭)

兼容性

Firefox浏览器尚未支持,Chrome浏览器不支持-webkit-user-drag: element声明,移动端不能使用,具体如下截图所示:

e27d13ec16d02ac668baecc7e91fe955.png

三、HTML draggable属性

使用CSS设置元素能够拖拽的优点在于控制方便,适合用在只需要兼容Chrome、Safari浏览器的桌面端PC网页产品中。

如果HTML有操作权限,且最终效果需要较好的兼容性,则还是需要使用传统的draggable属性实现,通过设置true还是false设置元素能够拖拽。

例如:

zxx.jpg

zxx.jpg

可以拖动的效果类似这样:

70bc11b51dbbe677f4b7395912903541.png

draggable属性常常和原生的drag & drop事件配合使用,可以实现任意元素的拖拽效果。

以前专门贡献过包含拖动、插入、排序、删除等完整交互的demo,有些人应该还不知道,可以访问这里了解下其中的实现细节。

HTML draggable属性的兼容性是相当的好,移动端全部支持,以及IE10+浏览器也都支持,基本上在如今这个年代是可以放心使用的HTML属性:

d209a2fd5be32fae9456e6b725938f44.png

四、结语、碎碎念

上个月开始开始默默写小说,估计至少100多万字,目前更新了20万字,不无脑,看得人不是很多,这也正常,主要还是做自己认为有意义和有价值的事情,等写到50万字时候尝试安利下。

下个月新书《CSS新世界》应该要出版了,实在是太慢了,去年国庆就写好了,这都过去8个月了,又出来很多CSS新特性,没办法,出版作品,三校三审,这个我不能左右。

博客这边的技术文章还是保持平均一周更新一篇的节奏。

过两天就是六一儿童节了,祝各位大朋友小朋友节日快乐!

1f389.svg

本文为原创文章,欢迎分享,勿全文转载,如果实在喜欢,可收藏,永不过期,且会及时更新知识点及修正错误,阅读体验也更好。

本文地址:https://www.zhangxinxu.com/wordpress/?p=9969

(本篇完)



推荐阅读
  • 为了实现跨浏览器兼容的禁用文本选择功能,可以通过在全局CSS样式中定义一个特定的类来禁止用户选中文本。具体做法是在全局样式表中添加一个名为 `.no-select` 的类,并在需要禁用文本选择的元素上应用该类。这样可以确保在不同浏览器中都能达到一致的效果。此外,还可以结合JavaScript进一步增强用户体验,例如在某些交互场景下动态启用或禁用文本选择功能。 ... [详细]
  • 在第10天的夜灵HTML日志中,我们深入探讨了浏览器兼容性和高级选择器的应用。CSS3引入了许多新属性,但在旧版浏览器中的支持情况并不理想。然而,目前主流浏览器的最新版本已全面支持这些新特性。对于那些不支持CSS3新属性的浏览器,我们提供了多种解决方案,以确保网站在不同环境下的兼容性和用户体验。此外,我们还详细讨论了如何利用高级选择器提升页面布局的灵活性和可维护性。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 在今天的实践中,我深入学习了网页图像抓取技术,通过编写爬虫程序批量获取网站上的图片资源。具体来说,我选择了一个包含大量高质量图片的网站作为练习对象,并成功实现了将这些图片批量下载到本地存储。这一过程不仅提升了我对爬虫技术的理解,还增强了我的编程能力。 ... [详细]
  • 本文介绍了使用 Python 编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。 ... [详细]
  • 本文探讨了Node.js后端开发的基础知识,包括模块源码的使用方法、前后端源码的区别以及如何在命令行环境中编译Node.js源代码。 ... [详细]
  • CSS Border 属性:solid 边框的使用详解
    本文详细介绍了如何在CSS中使用solid边框属性,包括其基本语法、应用场景及高级技巧,适合初学者和进阶用户参考。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
  • 本文详细探讨了使用Python3编写爬虫时如何应对网站的反爬虫机制,通过实例讲解了如何模拟浏览器访问,帮助读者更好地理解和应用相关技术。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
author-avatar
书友47721235_104
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有