JSFiddle - React, Tailwind, and code Playground
by velo_ninja
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dynamic Div Expansion</title>
<style>
body {
margin: 0;
overflow: hidden;
}
.expand-div {
position: absolute;
background-color: #3498db;
transform-origin: center center;
transition: all 0.3s ease;
}
</style>
</head>
<body>
<!-- Your target div with the IDs "myTargetDiv1" and "myTargetDiv2" -->
<div id="myTargetDiv1" style="width: 100px; height: 100px; background-color: #2ecc71;"></div>
<div id="myTargetDiv2" style="width: 100px; height: 100px; background-color: #ffcc71;"></div>
<script>
var targetDiv1 = document.getElementById('myTargetDiv1');
var targetDiv2 = document.getElementById('myTargetDiv2');
targetDiv1.addEventListener('click', createClickHandler('click', targetDiv1));
targetDiv2.addEventListener('click', createClickHandler('click', targetDiv2));
var expandedDiv;
// Create a closure to pass the variables to the xxx function
function createClickHandler(trigger, target) {
return function(event) {xxx(event, trigger, target);};
}
function xxx(event, trigger, target) {
if (expandedDiv) {
if (target === expandedDiv.triggerElement) {
document.body.removeChild(expandedDiv);
expandedDiv = null;
} else {
document.body.removeChild(expandedDiv);
expandedDiv = null;
openExpandedDiv(event, trigger, target);
}
} else {openExpandedDiv(event, trigger, target);}
}
function openExpandedDiv(event, trigger, target) {
expandedDiv = document.createElement('div');
expandedDiv.className =...