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

【clientX,offsetX,screenX】【scrollWidth,clientWidth,offsetWidth】的区别

一、深刻认识clientX,offsetX,screenX概念(来源于网络):clientX设置或获取鼠标指针

一、深刻认识clientX,offsetX,screenX

概念(来源于网络):

clientX 设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
clientY 设置或获取鼠标指针位置相对于当前窗口的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。 
offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。 
screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。 
screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。 
x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标(亦即相对于当前窗口)。 
y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标(亦即相对于当前窗口)。

 

实验实例(来源于网络,修改过):

[c-sharp] view plaincopy
  1. "-//W3C//DTD HTML 4.0 Transitional//EN">  
  2.   
  3. 'test()' style="margin:0 0 0 0" mce_style="margin:0 0 0 0">  
  4. 设置或获取鼠标指针位置相对于窗口客户区域的 x,y 坐标,其中客户区域不包括窗口自身的控件和滚动条。  
  5.  
      
  6. clientX="text" NAME="x1">  
  7. clientY="text" NAME="x2">  

  8.   

  9.   
  10.   
  11. 设置或获取鼠标指针位置相对于触发事件的对象的 x,y 坐标。   

  12.   
  13. offsetX ="text" NAME="x3">  
  14. offsetY ="text" NAME="x4">  

  15.   

  16.   
  17. 设置或获取获取鼠标指针位置相对于用户屏幕的 x,y 坐标   

  18.   
  19. screenX ="text" NAME="x5">  
  20. screenY ="text" NAME="x6">  

  21.   

  22.   
  23. 设置或获取鼠标指针位置相对于父文档的 x,y 像素坐标。  

  24.   
  25. x="text" NAME="x7">  
  26. y="text" NAME="x8">   

  27.   

  28.   
  29. "center" width=400 height=500 border=1 style="border-style:none" mce_style="border-style:none" CELLPADDING=0 CELLSPACING=0 οnclick='test()'>  
  30.   
  31. a  
  32. b  
  33.   
  34.   
  35. c  
  36. d  
  37.   
  38.   
  39.   
  40.   
  41. "Javascript">  
  42.   
  43. 《SCRIPT》  

 

实验结果分析:

    1.   clientX 和x值在实验过程中,没有发现值不一样的例子,所以我认为它们在效果上是一样的!
    2.   offsetX 是相对于当前窗口内,本触发事件对象(或者是某一区域)而言,如本例中你单击a区域,值是相对于a所在区域而言,同理b,c,d都一样!
    3.   clientX ,x,offsetX共同点:它们是相对位置,相对于当前窗口,只是offsetX相对于当前窗口的某个触发对象的父容器而言!
    4.   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



推荐阅读
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 解析SQL查询结果的排序问题及其解决方案
    本文探讨了为什么某些SQL查询返回的数据集未能按预期顺序排列,并提供了详细的解决方案,帮助开发者理解并解决这一常见问题。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • Kubernetes 持久化存储与数据卷详解
    本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 本文探讨了高质量C/C++编程的最佳实践,并详细分析了常见的内存错误及其解决方案。通过深入理解内存管理和故障排除技巧,开发者可以编写更健壮的程序。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 作为一名 Ember.js 新手,了解如何在路由和模型中正确加载 JSON 数据是至关重要的。本文将探讨两者之间的差异,并提供实用的建议。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • PostgreSQL 最新动态 —— 2022年4月6日
    了解 PostgreSQL 社区的最新进展和技术分享 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • 深入探讨Web页面中的锚点交互设计
    本文旨在分享Web前端开发中关于网页锚点效果的实现与优化技巧。随着Web技术的发展,越来越多的企业开始重视前端开发的质量和用户体验,而锚点功能作为提升用户浏览体验的重要手段之一,值得深入研究。 ... [详细]
author-avatar
wtc21232
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有