<div class="container">
<div id="info"></div>
<header></header>
<main class="content">
<div class="box">Box 1</div>
<div class="box">Box 2</div>
<div class="box">Box 3</div>
<div class="box">Box 4</div>
<div class="box">Box 5</div>
<div class="box">Box 6</div>
<div class="box">Box 7</div>
<div class="box">Box 8</div>
<div class="box">Box 9</div>
<div id="mybox" class="box">Box 10</div>
<div class="box">Box 11</div>
<div class="box">Box 12</div>
<div class="box">Box 13</div>
<div class="box">Box 14</div>
</main>
<footer></footer>
</div>
* {
box-sizing: border-box;
}
.container {
width: 80%;
margin: 0 auto;
border: 1px solid #000;
display: grid;
}
header {
height: 100px;
background-color: yellow;
}
main {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.box {
height: 200px;
background-color: orange;
margin: 10px;
padding: 10px;
color: #fff;
text-align: center;
}
#mybox {
border: 5px solid green;
}
#info {
position: fixed;
width: 50px;
height: 20px;
border: 2px solid red;
right: 20px;
font-wight: bold;
text-align: center;
}
footer {
height: 100px;
background-color: cyan;
}
var io = new IntersectionObserver(
entries => {
let ratio = Math.round(parseFloat(entries[0].intersectionRatio.toString().substr(0, 4)) + "e+2"); document.getElementById('info').textContent = `${ratio}%`;
},
{
threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
}
);
// Start observing an element
io.observe(document.getElementById('mybox'));
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.