Today I will share with you a hyperlink animation based on HTML5 and CSS3. This HTML5 application is quite practical. It allows you to pop up pictures when the mouse moves over the hyperlink, just like a tooltip. Because some CSS3 animation properties are used, there are many kinds of pop-up animations for this hyperlink picture, and you can also try to define some new animation effects yourself.
Advertisement
<div class="block" data-fx="1"> <a class="block__title" data-img="img/1.jpg">Effect 1</a> <a class="block__link" data-img="img/2.jpg">chloride</a> <a class="block__link" data-img="img/3.jpg">magnesium</a> <a class="block__link" data-img="img/4.jpg">zinc</a> <a class="block__link" data-img="img/5.jpg">iodine</a> </div> <div class="block" data-fx="2"> <a class="block__title" data-img="img/6.jpg">Effect 2</a> <a class="block__link" data-img="img/7.jpg">mimas</a> <a class="block__link" data-img="img/8.jpg">phobos</a> <a class="block__link" data-img="img/9.jpg">lapetus</a> <a class="block__link" data-img="img/10.jpg">titania</a> </div> <div class="block" data-fx="3"> <a class="block__title" data-img="img/11.jpg">Effect 3</a> <a class="block__link" data-img="img/12.jpg">Capitate</a> <a class="block__link" data-img="img/13.jpg">Triquetral</a> <a class="block__link" data-img="img/14.jpg">scaphoid</a> <a class="block__link" data-img="img/15.jpg">Hamate</a> </div> <div class="block" data-fx="4"> <a class="block__title" data-img="img/16.jpg">Effect 4</a> <a class="block__link" data-img="img/17.jpg">stratus</a> <a class="block__link" data-img="img/18.jpg">cirrus</a> <a class="block__link" data-img="img/19.jpg">nimbus</a> <a class="block__link" data-img="img/20.jpg">cumulus</a> </div>
a {
text-decoration: none;
color: var(--color-link);
outline: none;
}
a:hover,
a:focus {
color: var(--color-link-hover);
}
button:focus,
a:focus {
outline: none;
}
main {
position: relative;
width: 100%;
}
.block {
text-transform: lowercase;
padding: 0 5vw 20vh;
display: flex;
flex-direction: column;
align-items: center;
}
.block__title {
position: relative;
font-size: 1rem;
margin: 0 0 1.5rem 0;
padding: 0.5rem 0;
cursor: pointer;
font-weight: bold;
color: var(--color-blocktitle);
}
const getMousePos = (e) => {
let posx = 0;
let posy = 0;
if (!e) e = window.event;
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
return { x : posx, y : posy }
}
const getRandomFloat = (min, max) => (Math.random() * (max - min) + min).toFixed(2);
Advertisement