Okay, gut für diese Frage müssen Sie gehen zu finden, ist das ein sichtbar an seinem Standort in dem DOM . Wir werden dies in 3 tun Schritte
- Suchen Sie den Speicherort des Elements auf dem dom
- Finden Sie das Element an dieser Stelle auf dem dom
- Überprüfen Sie, ob das Element unserer ursprünglichen Element
Um die X, Y-Position des Elements auf dem DOM findet ich geändert nur geliehen und diese Funktion von einer anderen Stackoverflow Antwort (Retrieve the position (X,Y) of an HTML element):
function getOffset(el) {
var _x = 0;
var _y = 0;
while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { y: _y, x: _x };
}
Okay, an dieser Stelle in dem DOM das Element finden wir
document.elementFromPoint(x,y)
Glücklicherweise diese gibt das oberste Element, das heißt die sichtbaren verwenden werden. Schließlich stellen wir sicher, dass das Element dem entspricht, das wir überprüfen. Wir können all das in einer einzigen, schönen, großen Funktion zusammenfassen.
function isVisible(element){
var getOffset = function(el) {
var _x = 0;
var _y = 0;
while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { y: _y, x: _x };
}
var _pos = getOffset(element);
var _topElement = document.elementFromPoint(_pos.x,_pos.y);
//Returns a boolean of whether this is this the same element?
return _topElement == element;
}
Diese Funktion sagt uns, ob das Element sichtbar ist oder nicht. Wir können nur prototypisch filtern dies durch eine HTML-Sammlung zu sehen, ob das Element sichtbar ist oder nicht
[].filter.call(document.getElementsByClassName('my_thingy'),(thing) => (!isVisible(thing)));
, die ein Array von all dieser Art von Elemente zurück, die nicht sichtbar ist. Danke fürs Lesen, ich hoffe ich habe geholfen.
Danke, dass du dir Zeit genommen hast, es zu beantworten und so gut zu erklären ... denke, es sollte helfen. Werde das versuchen. –
Kein Problem, sag mir wie es geht. –
Verdammt OP, wo bist du? –