html中的offsetTop的使用

html中的offsetTop的使用,第1张

1. offsetTop :元素到offsetParent顶部的距离

2. offsetParent :距离元素最近的一个具有定位的祖宗元素(relative,absolute,fixed),若祖宗都不符合条件,offsetParent为body。如下图所示:获取child的offsetTop,图1的offsetParent为father,图2的offsetParent为body。

3. 注意:只有元素show(渲染完成)才会计算入offsetTop,若是中间有元素数据需要异步获取,会导致最终获取的offsetTop值偏小

scrollTop是指某个可滚动区块向下滚动的距离,offsetTop则是元素的上边框与父元素的上边框的绝对距离。

1.offsetTop     :

当前对象到其上级层顶部的距离.

不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性.

2.offsetLeft    :

当前对象到其上级层左边的距离.

不能对其进行赋值.设置对象到页面左部的距离请用style.left属性.

3.offsetWidth   :

当前对象的宽度.

与style.width属性的区别在于:如对象的宽度设定值为百分比宽度,则无论页面变大还是变小,style.width都返回此百分比,而offsetWidth则返回在不同页面中对象的宽度值而不是百分比值

4.offsetHeight :

与style.height属性的区别在于:如对象的宽度设定值为百分比高度,则无论页面变大还是变小,style.height都返回此百分比,而offsetHeight则返回在不同页面中对象的高度值而不是百分比值

5.offsetParent  :

当前对象的上级层对象.

注意.如果对象是包括在一个DIV中时,此DIV不会被当做是此对象的上级层,(即对象的上级层会跳过DIV对象)上级层是Table时则不会有问题.

利用这个属性,可以得到当前对象在不同大小的页面中的绝对位置.

6.scrollLeft    :

对象的最左边到对象在当前窗口显示的范围内的左边的距离.

即是在出现了横向滚动条的情况下,滚动条拉动的距离.

7.scrollTop

对象的最顶部到对象在当前窗口显示的范围内的顶边的距离.

即是在出现了纵向滚动条的情况下,滚动条拉动的距离.

8.测试offsetTop和scrollTop的html代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>New Document </TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!--

function test(){

var oIframe = document.getElementById("div1")

alert(oIframe.offsetTop)

alert(oIframe.scrollTop)

}

//-->

</SCRIPT>

</HEAD>

<BODY style="border:1px red solidpadding:20pxmargin:0px">

<div id="div1" style="border:1px blue solidheight:400pxwidth:200pxoverflow:auto">

<iframe id="iframe1" src="http://www.baidu.com" width="400" height="500" style="border:1px red solid" scrolling="no">

</iframe>

</div>

<input type="button" value="OK" onclick="test()"/>

</BODY>

</HTML>

<script type="text/javascript" ></script>

offset 自己的

目的: js中有一套方便的获取元素尺寸的办法就是offset家族;

div { width:220px border-left:2px solid redpadding:10px}

div.offsetWidth = 220 + 2 + 20

为什么不用 div.style.width 因为东西 只能得到行内的数值

如果 父级 都没有定位则以body 为准

这里的父级指的是所上一级 不仅仅指的是 父亲 还可以是 爷爷 曾爷爷 曾曾爷爷。。。。

offsetParent返回该对象的父级 (带有定位) 不一定是亲的爸爸

前面学过一个返回父亲(亲的)parentNode 有所区别

如果当前元素的父级元素没有进行CSS定位(position为absolute或relative),offsetParent为body。

如果当前元素的父级元素中有CSS定位(position为absolute或relative),offsetParent取最近的那个父级元素。

1.最大区别在于 offsetLeft 可以返回没有定位盒子的距离左侧的位置。 而 style.top 不可以 只有定位的盒子 才有 left top right

2.offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。

3.offsetTop 只读,而 style.top 可读写。

4.如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。

5.最重要的区别 style.left 只能得到 行内样式 offsetLeft 随便

我们学过一些事件 : onmouseover onmouseoutonclick .....

event 单词翻译过来 事件 的意思

event 就是事件的对象指向的是 事件 是 onclick

在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。所有浏览器都支持event对象,但支持的方式不同。

比如鼠标 *** 作时候,会添加鼠标位置的相关信息到事件对象中。

普通浏览器支持 event

ie 678 支持 window.event

是以我们的 电脑屏幕 为基准点 测量

以我们的 文档(绝对定位) 的基准点 对齐

ie678 不认识

可视区域 为基准点 类似于固定定位

onmouseover onmouseout onclick

onmousemove当鼠标移动的时候就是说,鼠标移动一像素就会执行的事件

div.onmousemove = function() { 语句 }

当鼠标再div 身上移动的时候,就会执行。

他们相同点 都是 经过 div 才会触发

div.onmouseover只触发一次

div.onmousemove 每移动一像素,就会触发一次

onmouseup 当鼠标d起

onmousedown 当鼠标按下的时候

1.拖动 原理 == 鼠标按下 接着 移动鼠标 。

bar.onmousedown = function(){

document.onmousemove = function(){

}

}

2.当我们按下鼠标的时候,就要记录当前 鼠标 的位置 - 大盒子的位置

算出 bar 当前 在 大盒子内的距离 。

我们知道 按下鼠标然后拖拽可以选择文字 的。

清除选中的内容

offset 自己的 偏移

offsetWidth得到自己的宽度

offsetHeight

构成 : width + padding + border

divwidth 200 border 3pxpadding-right: 15px

div offsetWidth =200 + 6 + 15 = 221

◆ offsetLeft和 offsetTop

div.offsetLeft

得到距离 这个 div 最近的 带有定位的 父 盒子 左边距离

◆ offsetParent 返回自己的父亲元素 (带有定位的)

parentNode这个返回亲父亲 不管父亲是否带有定位

◆ style.top 和 offsetTop

offsetTop 只读只可以得到结果 但是不能赋值

style.top能得到 (行内式 )但是可以给值

style.top 得到的是 25px

offsetTop 得到的是 25

◆ 事件对象 event

div.onclick = function(event) { } event 是点击的事件对象

event 集合点击事件的相关信息

pageX文档的 参考点

clientX可视区域

ScreenX 屏幕

◆ 常用事件

onmouseover 经过

onmouseout 离开

onmousemove 鼠标移动

var num = 0

div.onmouseover = function() { num++ console.log(num))} 1

div.onmousemove = function() { num++ console.log(num))}

onmousedown 按下鼠标

onmouseup d起鼠标

拖拽: 先按下鼠标 然后 移动鼠标

bar.onmousedown = funtion() {

document.onmousemove = function() {}

}

最大 window 对象 document对象

今日案例:筋斗云、点击跟随鼠标、放大镜案例素材获取

链接: http://pan.baidu.com/s/1jINmiOI

密码:homu


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11272491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存