马黑黑 发表于 2022-7-28 20:42

重新封装一下偏移总量函数

新封装的函数需要更少参数,也更简短,调用也更加简单:


let calcOffset = (ele) => {
        let x = ele.offsetLeft, y = ele.offsetTop, pa = ele.offsetParent;
        while(pa != null) {
                x += pa.offsetLeft;
                y += pa.offsetTop;
                pa = pa.offsetParent;
        }
        return {x, y};
}

说明:

一、参数 ele

ele 为 element 的缩写,意为元素。例如,想获取 id="son" 的 元素的横向和纵向偏移量:

let sLeft = son.offsetLeft + calcOffset(son).x;
let sTop = son.offsetTop + calcOffset(son).y;

二、返回值

返回一个对象,{x,y},x 是水平偏移值,top是纵向偏移值。上面例子语句中的 calcOffset(son).x 和 calcOffset(son).y 便是。

千羽 发表于 2022-7-28 21:16

俺路过,最近没时间看和做,点赞是必须的{:4_187:}

马黑黑 发表于 2022-7-28 21:25

千羽 发表于 2022-7-28 21:16
俺路过,最近没时间看和做,点赞是必须的

忙就不用关注我这里

千羽 发表于 2022-7-28 21:26

马黑黑 发表于 2022-7-28 21:25
忙就不用关注我这里

嗯,好吧{:4_181:}

马黑黑 发表于 2022-7-28 21:27

千羽 发表于 2022-7-28 21:26
嗯,好吧
我这地儿偏僻,来一趟不容易,喝杯热茶消消暑再走{:4_190:}

千羽 发表于 2022-7-28 21:29

马黑黑 发表于 2022-7-28 21:27
我这地儿偏僻,来一趟不容易,喝杯热茶消消暑再走

好吧,俺一饮而尽了,谢了哈{:4_181:}

马黑黑 发表于 2022-7-28 21:30

千羽 发表于 2022-7-28 21:29
好吧,俺一饮而尽了,谢了哈

不客气不客气,墙角柜那里有好多好茶,爱啥拿啥

千羽 发表于 2022-7-28 21:33

马黑黑 发表于 2022-7-28 21:30
不客气不客气,墙角柜那里有好多好茶,爱啥拿啥

嗯好的{:4_181:}

马黑黑 发表于 2022-7-28 21:40

千羽 发表于 2022-7-28 21:33
嗯好的

随意哈

红影 发表于 2022-7-29 00:00

调用这个语句的时候,就可以做偏移了吧。来学习{:4_187:}

马黑黑 发表于 2022-7-29 07:35

红影 发表于 2022-7-29 00:00
调用这个语句的时候,就可以做偏移了吧。来学习

可以准确计算元素的偏移量,这和之前用过的是一样的,只是这个更简洁、更方便。我将发一个鸟语的帖子,它就用到这个。之前的小鸟四处飞的帖子也用到偏移量计算,函数是之前封装的。
页: [1]
查看完整版本: 重新封装一下偏移总量函数