javascript 如何檢測元素是否被其他元素覆蓋

時間 2021-06-03 11:30:37

1樓:月亮也會發光吶

除了IntersectionObserver的方案

可以用canvas2html截圖,之後對比元素區域的像素色值是否一樣。

2樓:博唯

要檢測HTML元素在viewport內的那部分是否被其他元素遮住(z相關),可以用 elementFromPoint

function

(element)=

element

.getBoundingClientRect();x|=0

;y|=0

;width|=0

;height|=0

;let

elements=[

document

.elementFromPoint(x

,y),document

.elementFromPoint(x

+width,y

),document

.elementFromPoint(x

,y+height

),document

.elementFromPoint(x

+width,y

+height)];

return

elements

.filter

((el

)=>el!==

null

).some

((el

)=>el!==

element);}

而要檢測HTML元素是否在其viewport內(x,y相關),可以用 IntersectionObserver

JavaScript沒有 static,如何定義區域性靜態變數?

liminyan js 是有static 方法的,但是屬於新特性具體樣例如下class A static run static方法A.myStatic static 變數 batsing alertTips function PS 因為原來的描述不夠清晰,所以刪改了。下面是原來的描述以前寫了個函式做...

JavaScript語言如何實現等待函式值為真的操作?

navegador 如果你不介意真實阻塞,那使用Atomic.wait,這個喚醒比較麻煩,只能從另乙個worker 喚醒。這個是真實掛起阻塞的 但是不是while那種佔CPU的阻塞 suooq 我怎麼理解你這個問題?我分析下 函式值指的是返回值 獲取函式返回值只有呼叫它 等待值為真,意思是無限制呼叫...

如何理解 Javascript 中的 Promise 物件的狀態不受外界影響?

胡小濺 你說反了,Promise 的狀態就是靠外界修改的。它自己並不會自發地從 Pending 變成 Resolved,它只是將可以改變內部狀態的 resolve 和 reject 方法暴露出來,由使用者決定什麼時候改變狀態。唯一的限制是狀態只能改變一次,一旦從 Pending 變為其它狀態就不再受...