Ich habe eine Situation wie im Screenshot unten gezeigt, wo ich möchte, dass ein inneres div ein äußeres div überlagert, wenn das äußere div ein CSS von position:relative
hat. Ich habe versucht, dies zu tun, die Sie in den folgenden Online-Demo sehen: Demo of my codeKann kein inneres div bekommen, um ein äußeres div zu überlagern
- Ich habe zwei JavaScript-Methoden genannt Overlay und undoOverlay.
- Wenn ich die Overlay-Methode aufrufen, werden die ID von div zu überlagern und ID von div zu überdecken, aber es ergibt sich nicht in der gelben div zu decken/Overlay der äußeren orange div.
- Die Methode undoOverlay gibt das überlagerte Div in seinen ursprünglichen Zustand zurück.
Frage: Wie kann ich die Methode overlay
Arbeit wie erwartet das heißt, es den gelben div die orangefarbene div genau Overlay verursachen sollte/abdecken?
JavaScript-Code Ich habe für diese Situation versucht
<button type="button" onclick="overlay('div2','div1');">Overlay Yellow Div on Orange Div</button>
<button type="button" onclick="undoOverlay('div2');">UNDO Overlay</button>
<br><br>
<div id="div1" style="position:relative;background-color:orange;border:2px solid red;height:500px;width:300px;">This is OUTER div
<div id="div2" style="background-color:lightyellow;border:2px solid green;height:400px;width:270px;">This is INNER div</div>
</div>
<script>
//original dimensions of div to show when overlaying
var originalWidth = null;
var originalHeight = null;
//makes first div to exactly cover the second div
function overlay(divIdToShow, divIdToCover) {
originalWidth = document.getElementById(divIdToShow).style.width;
originalHeight = document.getElementById(divIdToShow).style.height;
document.getElementById(divIdToShow).style.width = document.getElementById(divIdToCover).style.width;
document.getElementById(divIdToShow).style.height = document.getElementById(divIdToCover).style.height;
}
//returns an overlayed div to it's original state
function undoOverlay(divId) {
document.getElementById(divId).style.width = originalWidth;;
document.getElementById(divId).style.height = originalHeight;
}
</script>
Dank. Ich habe in Ihrem Snippet festgestellt, dass die Schaltfläche zum Rückgängigmachen der Überlagerung den ursprünglichen Zustand des inneren Divs nicht wiederherstellt. – Sunil
Vielleicht, weil Sie die UndoOverlay-Methode in Ihrem Code-Snippet nicht haben. Ich werde es ausprobieren. – Sunil
Mein Code ist sauberer. Ich brauchte keine zwei Methoden, um ein div ein- und auszuschalten, wenn ein boolescher Parameter ausreichen würde. –