一、深刻认识clientX,offsetX,screenX
概念(来源于网络):
clientX 设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。
clientY 设置或获取鼠标指针位置相对于当前窗口的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。
offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。
offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。
screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。
screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。
x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标(亦即相对于当前窗口)。
y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标(亦即相对于当前窗口)。
实验实例(来源于网络,修改过):
- "-//W3C//DTD HTML 4.0 Transitional//EN">
- 'test()' style="margin:0 0 0 0" mce_style="margin:0 0 0 0">
- 设置或获取鼠标指针位置相对于窗口客户区域的 x,y 坐标,其中客户区域不包括窗口自身的控件和滚动条。
-
- clientX="text" NAME="x1">
- clientY="text" NAME="x2">
- 设置或获取鼠标指针位置相对于触发事件的对象的 x,y 坐标。
- offsetX ="text" NAME="x3">
- offsetY ="text" NAME="x4">
- 设置或获取获取鼠标指针位置相对于用户屏幕的 x,y 坐标
- screenX ="text" NAME="x5">
- screenY ="text" NAME="x6">
- 设置或获取鼠标指针位置相对于父文档的 x,y 像素坐标。
- x="text" NAME="x7">
- y="text" NAME="x8">
"center" width=400 height=500 border=1 style="border-style:none" mce_style="border-style:none" CELLPADDING=0 CELLSPACING=0 οnclick='test()'>
a b c d - "Javascript">
- 《SCRIPT》
实验结果分析:
- clientX 和x值在实验过程中,没有发现值不一样的例子,所以我认为它们在效果上是一样的!
- offsetX 是相对于当前窗口内,本触发事件对象(或者是某一区域)而言,如本例中你单击a区域,值是相对于a所在
区域而言,同理b,c,d都一样! - clientX ,x,offsetX共同点:它们是相对位置,相对于当前窗口,只是offsetX相对于当前窗口的某个触发对象的父容器而言!
- screenX是相对与客户端显示器而言,是绝对位置!
【转载】http://blog.csdn.net/weinideai/article/details/3885444
二、scrollWidth,clientWidth与offsetWidth的区别
(注意:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)scrollWidth
是对象的实际内容的宽,不包括边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际度)
clientWidth
是对象可见的宽度,不包括滚动条等边线,会随窗口的显示大小改变。
offsetWidth
是对象的可见宽度,包括滚动条等边线,会随窗口的显示大小改变。
一个scrollWidth和clientWidth的例子:
在文本框内输入内容,当横向滚动条没出来前scrollWidth和clientWidth的值是一样的。当一行内容超出文本框的宽度,就有横向滚动条出来了,scrollWidth的值就变了。
scrollWidth是对象实际内容的宽度。
clientWidth是对象看到的宽度(不含边线)。
一个clientWidth和offsetWidth的例子:
offsetWidth的值总是比clientWidth的值大。
clientWidth是对象看到的宽度(不含边线)
offsetWidth是对象看到的宽度(含边线,如滚动条的占用的宽)【转载】http://blog.csdn.net/weinideai/article/details/3880600
转:https://www.cnblogs.com/julin-peng/p/4088928.html
推荐阅读-
笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]本文介绍如何使用R语言中的相关包来解析和转换搜狗细胞词库(.scel格式),并将其导出为CSV文件,以便于后续的数据分析和文本挖掘任务。 ... [详细]本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]本文探讨了在Excel中如何通过简单的方法解决单元格显示公式而非计算结果的问题,包括使用快捷键和调整单元格格式两种方法。 ... [详细]本文旨在探讨Swift中的Closure与Objective-C中的Block之间的区别与联系,通过定义、使用方式以及外部变量捕获等方面的比较,帮助开发者更好地理解这两种机制的特点及应用场景。 ... [详细]本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]本文探讨了在网站编辑器中使用JavaScript实现优酷视频播放器自适应宽度的方法。尽管尝试过多种CSS解决方案,但都存在一定的局限性,因此最终决定采用JavaScript来动态调整视频播放器的尺寸。 ... [详细]汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]《利用Python进行数据分析》一书推荐使用EPDFree版本的环境,然而随着技术的发展,目前更多人倾向于使用Canopy。本文将详细介绍Canopy的安装及使用方法。 ... [详细]本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]Tags | 热门标签RankList | 热门文章
- 12020年5月17日学习周报:搜索优化、推荐算法与风险控制进展综述
- 2设计一种高效的数据结构与算法,用于存储和计算超出常规范围的超大整数加法运算...
- 3利用 Python 管道实现父子进程间高效通信
- 4富士通笔记本连接耳机后为何无声?排查与解决方法综述
- 5FastDFS Nginx 扩展模块的源代码解析与技术剖析
- 6深入解析 PHP 容器概念:理解依赖注入容器的基础与应用(第一篇)
- 7如何解决XP系统启动时出现CPU风扇错误警告?
- 8如何使用FindWindow360问答功能?探索其专业应用与技巧
- 9英伟达推出最新版显卡驱动程序 527.56,提升性能与兼容性
- 10在 Goland IDE 中配置 Go 开发环境的方法与步骤
- 11在 Rails 中使用 Delayed Job 时,自定义作业类的最佳存储位置是什么?
- 12MongoVUE基础操作指南:轻松上手数据库管理
- 13深入解析 Android TextView 中 getImeActionLabel() 方法的使用与代码示例
- 14如何在Vue项目中自定义Element UI组件的样式
- 15CentOS 7环境中OpenCV 2.4.13安装与配置详解