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">
<style>
.divExpand {
position: absolute;
background-color: red;
transition: width 0.5s, height 0.5s;
width: 100px;
height: 100px;
}
</style>
<script>
</script>
</head>
<body>
<script>
let body = document.body
body.style.backgroundColor = 'red';
body.textContent = 'Click me';
let myDiv = document.createElement('div');
myDiv.style.backgroundColor = 'green';
myDiv.style.height = '100px';
myDiv.style.width = '100px';
myDiv.style.border = '2px solid white';
body.appendChild(myDiv);
yyy('click', myDiv);
function yyy(trigger, div) {console.log('a');
div.addEventListener(trigger, createClickHandler(trigger, div));
var divExpand;
function createClickHandler(trigger, target) {console.log('b');
return function (event) {
xxx(event, trigger, target);
};
}
function xxx(event, trigger, target) {console.log('x');
if (divExpand) {
if (target === divExpand.triggerElement) {
document.body.removeChild(divExpand);
divExpand = null;
} else {
document.body.removeChild(divExpand);
divExpand = null;
open_divExpand(event, trigger, target);
}
} else {
open_divExpand(event, trigger, target);
}
}
function open_divExpand(event, trigger, target) {console.log('running...');
divExpand = document.createElement('div');
divExpand.className = 'expand-div';
var rect = target.getBoundingClientRect();
var initialX = rect.left + rect.width / 2;
var initialY = rect.top + rect.height /...