CSS animations and transitions are a powerful concept in app development to add visual interest to your web pages. They can be used to create a variety of effects, such as fading in elements, sliding them across the screen, or rotating them.
Let's delve deeper into how CSS animations and transitions can be utilized to enhance the visual appeal of web pages.
- Fading in elements is a simple yet effective method to emphasize elements, like headlines or buttons, by gradually making them appear when the user hovers over them.
- Slide elements across the screen to add dynamic movement to your page. For instance, you can reveal a menu by sliding it into view when users scroll to the page's top.
- Using element rotation can add dynamism to your page's appearance. For instance, you may rotate a logo or an image to draw attention to it and create a more engaging visual effect.
Apart from these fundamental effects, CSS animations and transitions offer the potential to craft intricate animations. For instance, you can design an animation displaying a product rotating on a turntable or a character walking across the screen. The creative possibilities are boundless! By leveraging CSS animations and transitions, you can craft captivating visual effects that enhance the interactivity and engagement of your web pages.
JavaScript can be used to control CSS animations and transitions in a number of ways.
Let’s understand with an example
index.html
<!DOCTYPE html>
<html>
<head>
<title>The Artistic Grid Gallery</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<div class="grid-gallery">
<div class="gallery-item">
<img
src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSE1D638uXtEVbhalU7Y2grP9yHjfUZIINQrA&usqp=CAU"
alt="Image 1"
/>
<div class="overlay"></div>
</div>
<div class="gallery-item">
<img
src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTHJPTbsvy6DVRjAIo6tRxM0SS0NSJjb9dJHsm6To7XhkzzgXctDSVUz2QdcJlM3-nrhqE&usqp=CAU"
alt="Image 1"
/>
<div class="overlay"></div>
</div>
<div class="gallery-item">
<img
src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ-cgloBNnZzyjyr4gXoPEXMpsJKQTsqVWGrY8BW-7TNDN1bsE70cjbYcF3pMZ7PeyJyfQ&usqp=CAU"
alt="Image 1"
/>
<div class="overlay"></div>
</div>
<div class="gallery-item">
<img
src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHCBUUFBgUFRUYGRgaGxgaGhsaGxsYGhobGBoaGxobGBsbIS0kGx0qIRgYJTclKi4xNDQ0GiM6PzozPi0zNDEBCwsLEA8QHxISHzMqJCszMzMzMzU1MzMzNTMzMzMxMzMxMzMzMTMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM//AABEIALcBEwMBIgACEQEDEQH/xAAcAAABBQEBAQAAAAAAAAAAAAAGAAIDBAUHAQj/xABDEAACAQIEAwYCBwUFCAMAAAABAgMAEQQFEiEGMUETIlFhcYEykQcjQlJiobEUcoLB0TNDkqLhFRZjc7LC8PFTg9L/xAAZAQADAQEBAAAAAAAAAAAAAAABAgMABAX/xAAwEQACAgEDAgQDBwUAAAAAAAAAAQIRAxIhMQRBIlFhcRORoQUUIzKBscEVQuHw8f/aAAwDAQACEQMRAD8Aq4bhoD7NX/8AZMcYuwAqVM/aQXjjuD1qVi8otIthSJWO7QoIotN1savRKttlrOGWhWuGsK0kxaKLXpqQNy5howw3Fqr4nCWO1Qft/wB2srPMylRAY7XNZ1W4VZr/ALP4mmt2a/EwoTgxkzfG29SPBfvPJ7XqdrshlF9zfmzWCPreoIOJYibWoPlxCRtvuK8OI7TZUsKPxGhtFh4c2jcbMKcy926HegqLBMN9x61oLmjoAL7U+tdwaXF7GmuGlvq1VZxGZiFQTuahweOEi3U15iF1qV03Bo7JbAlklLkv4DOVcX6VdmmjIoYhwqxjmAPM1Bis2ijBvICfKpx1f3Addj3iEoVIFA0iWNaOYZyjHu1q8E5M+Ml1kdxDcnxPhStb7DqQbfR3lJjiEkg3bkPAUakVDHDoUKNgKlWmi+wsvM9Ar2vK9qggr1Wx8zohZBcjpVivDRDF07OdYnjCfXbRax3HWjPJsyE8YaxB6g09spiLlygufKrkcSryAFJGMk93Z1dRmwyilGNM8ksBc1QbMIzsjAt4VdeeM7Fl+YrKmymK5kisr9CDVUcQ6LFSarFOtahj2oI1Zn2hUaLX526UU5ckwX6xgT5VjIsslMcjkTWPmOOxKtpWO6k8x4VehwBIBZjuPlRDZh5vwdFiH18r+FUk+j+AedG0UekWpxWtqMBv+5WH+7Sou0UqNmOR8MZ0Ebsn2HQ0ZuLjY1yPGppsQdxRRw5xPcCOQ79DXPCWxSUdwhxs/j0rJxGa6JUjI7rda3Z41kX161lNlStbtNypuv8AKkqTlfYyqqNVHBsFIqPEYYPdCT61m4oSA9yygVJD2iDXI1/Kq6u1DfC2u0VsbgGjXuXJrJlMnVD61vPm0Z+NgoFUsTxRh02UFqVqNbA1NPcyokTkUZm9KvYbL5b6lTSPOqMvFrHaONR51UbM8VKbdpa/QUqiBzvkJXwxG8kqqPC9UMVjMGnNi58qpw8MYiQXZjv4mqOa8NSQ7tuvjTVW9GVy2RePFiRjTFEAPOs7E8UYh+TaR5Vmrhb0ngtQ1IDg0eTY6V/idj71X9aey01hRsFFrLcE00iRoLsxAH9a+h+HcoTCwJGoFwBqPietA/0U8M6F/a5B3m2jB6L4+9dLNZGsRryqs+YRIwR5FVjyBIF6sg3pkAVK9e2rw01AFSoI4o47GEl7FY9bAAk3sN6uZFxpHiI2fQysvNRuT6WomLnEfFMWCKiS5LcgKblPFGHxaNoYi3MHnWZxHwwcwkjkLFEC7gjvb1r5Nw5BhVtGm/UnmaxgbxXBzSSa45pAjb/Efyoiybh5YBu7ufFjetoG1eaxWNQ8KBSNQmSmlzWMSsab2lQk16DWNQ8vS1Uy9e0THtq8ry9KgY5gnBcZ3kkP6UzG5XgsPGTcFwNt971m59nHaHSJCqre+nqaysNhRMwSNHdj1JNvep7cIp4uWXst4laPY95elWcVxQW3SNq3Mo4UijH1xBf7o6VtHIoXX6vSLeApHqS2Dfc5ziM4xDfYK35XFPjy/GS2BYgetHuPypuzsEDML6TytWNDHix3THvzueVRhkk/zKhnHa7MD/Y/Zuqy96/ga24OH8LNfQ1tPxDzqDMcplCtI73bqB09Kz8txMkL30tY/Ftzq6mk6aEjDUm74KkvDUvaHs1ul+Y8BRLl+V4aFe0Cs7qNx51o5djol71yAT8J23qSZBI+pAR5DlVUl2JkWX8Qgvysh2t1HrW1io45UsbFTQ3i+G3L9pGdN/iB5e1X8FhJYge8GXw/pUo61KpbrzKOuUBvEmUNCdSC6fpQwXJrqWZSK6H8wa55jsKAxtyrNRXAVbM69T4DQJEMl9Goa7fdvvXohr1cOTS6kaj6EyfNsNJGohkQqAAACAR5WrUNfOOGh0kFSQ3kSD+VEWG4sx2HAtrZf+IpI+ZoqQHGjoPFXCa4vvhisg+EihHDcQ47LX7OdS6DkT4fharuXfSh0xEJHiUN/wAjW4eI8uxqdm0ib9H7pHzrexvc0sk4sw2KACOFf7jbH/WtyuPZ/wAGtGTLhX1rzAU94ehFQZNxzisMQkn1iDYhtmHoadT8wOHkbud8PxYnMW7WbRcLZeV7dATRrlGSQYZQsSAefMn3rFwue4DMFCSaVfwfusD+FqsDK8Vh98PL2if/AByG+3gr06fcWgkpGsKDiNQdGIjaF+XeHcPow2raRwwupBB6jcUQGNn2FxDFZIJLFeaHk3lUGW56Gbs5lMcng2wP7p60QmqWPy6KYWkUHwPUehrNBsmDVj8QyYhUBw4BPXx9qrY+aTAJ2jMZIQQDf40B29xWll2axzoHjcMPLmPUUr8hoS0yTqwCxWdY6P8AtCVv4io04txI+0D7Ub5xkkeJtruCORFUcFwfAjBiWa3Q8qg4TvZ7HqQ6rp3C5RV+xq5HLI8SvJ8TC/pWjemqthYcq9FdK2R5c5apNo9pU2lWEOZ4LhwsWaVVSMb36keJ8K28FNhUHYYdgrsCAQL7+JNbkiBlKncEWPpUGHwEUfwRqLdQN6RQrgrGca8V32KMuDRNPaSKhBBLX3a3rT5eIcNHsrA+SjnVPinK5JzH2YG2q5JtseVZ+H4Pb+8kA8lFTk5XSR1QjhcVLJL9AkyjOFxOoqCApA386vuKy8oylMPfQzHVzv5VfLVRRdbnLk06no4PHiU9BVOXLo25r8qtXqDGYsRoZHvpHOwvSuK7oVW3SKsOSRK+vc+RNxVuaNrWRgnoKHsTxgo/s4yfNtqpYbiSWSVA1ghNiFHjQWSK2R0fdMlamgnSD7zu3vanrGbWGwq5HhHbkpt48hVyHJmPxMB6b1VujmBfE5WGJNzc1ly8JA2N3JPIAXNdMgyiNeY1etXkjA5ACptJhUqOUw/R5LJa3c35uenoKI8B9HeHS3aMzn5Ci7E4uOMapJFQeLECh3H8b4dLiPXK34BYfM1moR3Y8VOeyXyNjB5FhovgiQedgT8zVx8MjbFVI8LCuM8U8U4uQhlcxoeSqTf3NSfR1n8v7ciyyu6yBo+8xIDHdSAfMW960ZxfAsoSXPJ0bF8N4GbVqjTYkEqLWI57ihzMPorgc6opCg8+8KMMyxsUDgNIqdpcgE2BPIm5BHhUWXYu2GcQus7oHICtfe5KqT+VNauh/hNpNcf73ObNwBmURPZSKR0tIR+RrPxvBuaMbvEHPiGW9FsfHs6vaSJLA2IF1YfPrVjE/SDZu5Fddt2ax89hUviY/M6f6f1F8fU5tiOGMbGNT4dxbqN/0q1lHF2Mwp06iyjmklz8jzFdd4f4jixmpQpV1Fyp3FvEGqPGWT4UwvJJGoKgkMNjfpTpJq4s5ckJQlokqZnZRxxhsUOzmj0G2+oak+fQetasWTx27TCylL72U60P8P8ASsL6LcoURSTsoPaHQtxfurz/AD/StnE5HGuJTsGeJjd5BGbIUHivIEmmi21bJtU6La4uePaWPWPvx7+5U7j2q7BjI3+FgfLkfcGk4lTkBIP8L/0P5VWM0EjaWGl/Bhof28fanAS5lgo54zHILo3McuVZmG4Xw8W8KmNvvKT+Y60/EpiY5Pqxri07A7uGvuL+FqnjzGyapY2i8dViB6kbD3rAITipItpVuv8A8i7j+IdKvxyK4upBHiN6ekiuLghgfCxBqk+W2OuJuzPUc0Pqv9KwS9Tb05I/Gn2ogI7GlT6VCjAlieIMOnOQE+C979Ku4XFCRFkW9mAIvzsaBMNwzO3MKg/Ed/kKNMsw7RxJGxBKi1x5cqnjlKT8So68+PFCK0u2XQ1eh6ZemF6qcg8vTC9QyTAC5IHqbVk4ziGCP+8DHwXvf6UG0uR4wk+EbZepGy1542XkrAi589qB34yBeypZbHcne/TYUWcJ5xO0PayRkwa2AK3Z0A5sVtdo73G1yLHa3JNaeyC4yi7Jsv4BgSxkZnPyHyFEmDyiGL+ziRfYX+dWYZFdQysGUgEEG4IPIgjmKUwYqdBAax0lhqAPQkAi49xWjCK4QZ5py5bY+1QvikU21XP3VuzfJd6o4YB27Ocv2lr6C1kYDmU0gB19dx1AqbHZYkiBNTxqN7RnR8yBf/3TyjXqSTs9/wBpXuV0qBzLsL/4Vuf0qu+Lkf4Fd/Mjs0/PvH51iPiY45OzwUQlnA3kkfSg8SzMe+d+S/Os3Mshx+J3nxiAHkia9PmFCgaj5bmtHFKS3aXtyFzinsrM3FOrSurEMQ7d93BCHUbgi5JUV7PNHawYvaxZYhoW34WtdxVjCcN9jEHsHW7KXUMhBLbB1Niv/qry5PI6aooQV6XAB9i5ua8nI9ORxabfr+56+PP4E1SRzvOZgVIAsAxK3O9ibi46Vm4bFtGySL8SMrr6qQR+lG/EHCWMkKlIGNkN7FB3i3L4vAUPrwZmAG+Ek/yf/qurEm47qjizSUpt2d17OLG4dGdQyOiuL9NQBuD0O9MyTIosIrCMG7Hdm3Y+A9BWV9HaTR4JIsRG0bxs6qHtcoTqUix5DUR/DROZF8RXSknvW5z65JOKe3kYud8MQYrvMuh/vrsf4hyb3oFxPBOJWQIoDox2kGwA/GOYor4zwmJkVGw0jWFwyI2gm/Jr3F7crXrDy1c1iOwLAgjTI6sBfkQS1wRUJxi5U4v3R6vS5MkcVxyL2fYKuH+Ho8Ill7zt8TnmfIeAoa+k7FN2aQr8UjAAf+edqZFDmwbV2vszIR8gKnOVYibFQT4oR6YgTZCTqf7JsRYC9jz6VSLtaUmjj6jG1LXKab9GEuVYVMNh0j2CxoNR9Bdj871DkimQNiGFjKbqD0jH9mPl3v4qZm8ZmQRg6ULL2niyA3Kj1tb0Jqy2PCiwT03sP0qlHIXrVXxeFjkW0iqw8xy9D0rGzXiQxIz6F2HUmsjhniifGyOrIioignSDqux7ouT+FunSs2k6CourNuPACM/V4iRV+43fX2LC/wCdMz3FRCEpKjOhFmGkm/rarlNYU1AOP4nMxDJfCPJGoN9BY6dvwnpRhkH0hRtZMSug8u0XdD+8Oa0T4jCo/wAaKw81B/WsrEcN4R+cCfwjQf8ALap6ZJ7DWmE8MySKHjZWU8ipBHzFI0K5fkEeHbVBJLHfmocsh9VcEfzogXFHqL+fKnT8xWixqpVD+1DwNKjYDGBpa6aDSJomPXeq8kh6U87VE0y+I/Wg2EFuK4XcIQpJuRYAnmL9PShmbKpVGp+6PM7/ACFdFlmXpf5UO8SHSCp53t71CUVbZeOR6VEFsFgmkkSNN3dlVR5sbC/lXdC2GweHSGSRUQR6AC1mYAWYqB3id77dTQH9F+VdpM+JYd2Pup/zHG5/hU/566LnGVR4qMxyeqsLakb7y/06ijFPTa5AnHUlK671yD3DpUB3wMruqt38PLZQwP242tdGPibgkHVY7gny7Mo5wdBIZTpkjYaZEb7rr08jyI3BIqnk3DsGGIaNSXtYuxJax5i3ID0FOzrJ+2tJE5ixCD6uVfD7kg5PGfun1G9NFSS3BmcHN6Lr1NDE4dJF0uLjmOhBHIqRureY3odzXBzJcszzR+XxoPxIBZx+JRfxHM1VyjjMdr+y41RBiFOm9/q3PijH4b7EA7bixNF2qqRnW6JSg1swExXFuXk3tCHDX3BceB5LsfMA8uVPwfHmFUss86OhvbTG918AVVLMPMb+XhocQ8JQYljIEVJerAbP/wAxQRq9QQduZG1cwzzJ5YSUkiRLHuurMyOPwE9fI2PlSzyyW1beY0ccWud/KjoeZ/SLl7xtGHdg/db6p7aTzuGAvttRJwpjo58KjxFil2VdV7jSxBBvvty9q+fHTwt6Wrr30RzE4N4z9iVrdNnRDtbz1UsZWaUaIs64mlhxs0gl+owzwI8Nge0V0JldNr6k1obX+yaPopVdQykMrAFSNwQRcEeVq5zmHEeW4SSTDoksiSsy4plmlYXtpJBZ7u/RipGwtckaaLuFnwhgAwTlohsAZJH0bDuWkYtHYW7u3PlToQ2mpjCvb14aJhjCmEVI1RmsEjK0ilQjHREgCRDqvYB1N9Nr233tcfOoWzeALrMiadPaagbjRq06gRzFwRfyrGJ9NQzptVpSDv47j3qHEgWomALjiXTHpB+I2rU+j/AGPC9oR3pWL/wjup7bE/xUN8Yu0uISBN2JVR+85Ciul4XCrHGka7Kiqq+igAfpUlvKx3tGhEVTzUSdk/YlRJbulrWv157Xte19r2q+y1hcUZM+KjVUk0lSTpN9D36Nbw6Gx67U8rp0HCoua1Ol8wGxGZY2NvrJJVO/M7G3O32T7VcwHGEyECULIvj8D/MbH5e9VpOE8WpsIg3mrpb/ADEH8qdFwli25xqn7zr/ANpJrhXxE9rPcf3aUd2v2DXLM3ixA+rbvW3RtnHt1HmLir9qDcNwTICGeYIRv9WpJB8mJW3yoqwOFeNbNK8ngXC3HuoF/e9deOUmvEjx8+PFF/hu/T/JY00qd7H5UqocwMvi28beg/rUbzk9W/SpWFQvYC5sLeOw96R2OhjP5X9TUZc+AqUpXmi1CjFZi3j+VQygsbnvE9SbHfzsauMK8w2FaWRI15uwHoOp9hc+1K4hTDThiLThUNiC2pjfmbsQD5jSFt5WrXFIoFARRZVAVR4ACwHypCqpbE27YnkVQWYhQOZJAA9SaHMz40w0dxGTM34Nk93Ox/hvWjnmSx4uPQ4swuUcDvIfEeI8R1+RrleY4GSCRo3FmX5EHkynqDUM2SUePmen0HTYc35m7XY3RmcWPd4sZGi9oAI5FFmjYX0qzncg6jz2ueVjtUjzXGZTJ2MwMsH2Lm3dB/u2Pwn8BuPC3OsvB4KSZtEaM56hRcD948lHraugYLIpZcMYMbodbfV2JZ08NTWsbdCCfU0mKUpc/Mr9odPjx7waXp/JfyfPIMWmqJ7kfEh2dP3l/mLjzqhxLgxJGykAgjrvXNs5yabAShgzCx+rkQlT6EjkfLrW9lHHhK9njF1dBIgF+X20HP1X5VXV2Z5enugHeEozDwJHnt510L6I8T38RHfmsbgehcH9VoW4jhTtO0jZXR9wy7i/UHwPka1fo0n0Y0L9+N19xpcf9BpYupDyVxD+fgvAkllhVCxBYpbvC9yhVwyhD1AAvWllWTwYYMIIlQMQW03Ja17XLEmwudulzV69KuggKlava8rGPL1E9TGmEUQmeuAjutolupZl25FmDsR/Gqt6qvgKzcvxeDd2gjjRdBeNAYwqSBf7RYmtpcAghlG91O1rEwcTZ6EDwxvpYC0sgt9UCPhTo0zA7D7IOo9AeYy5wwcGNVWBdMaxnvLZN135hgdw17g3bnclW6MdsACgAAAAAADYAeAHhyqhmuKCIWJtYGg/J+NOSO4kFvhZgrjnskjWWTws+lrC5Zr1FxdxBHJH2cbHU3MEFWA81O9j48j0rOSSsKVsj4Kw5xWOfEN8MYLD957qg+Ws+wrpZFDn0e5b2WDVyO9Ke0P7pACf5QD/ABUTstLBbGm9yEioyK9xUqxoXdgijmx2A/8ADWH/AL2YO9u19+zkt89NM5qPLHhinJXFN+yNgivLVDhMfFKLxyI/jpYEj1HMe9WDRTsRxadMbamlafSogGWrynWpVgAFj87ij2B1t4KdvduQ/M0M4/MZJT3z3eijZR/U+ZqfOMsMR1Luh5fhPgadl+SvJYvdF/zH0HT3rjm5SdHq444YR1X+pPk2bMLRuCw5KQLsPIjqv6URsagw2FSMWRQPPqfU9afqq0E0qZxZZxlK4qiKV7UQ8D4S5ecjYdxP1c/oPnQviWJIUC5JAA9eVdLyzCiGBIx9lRfzJ3J+dFbslJ0idjXo8aYd6p5sZ+yb9nKaxuA4uCPAbgBvM3FUeysWMdTSui7JMqKWdgqjmWIAHqTtQlmOa4DFzxxSBnsSBILolzyQtsxUm2/K9t9zQPmONmlY9s7swJFm2CkcwF5KfQVUNcU+ovZLb1Pd6f7NUfE5O+1djuOGgSNQkaKijkqgKB7ClK9gTvtc7Ak7eAG5PkKDuDeJy+nDy3LjZH3OoD7L+f4uvXfmYOa64NONxPIz4pY5tS/6c64m4qjlRoo4tQNwWkFrdNk539SPSub4mMqedxXWuLuHhMDLELSjmOQkA8fxeB68j0ty/FwMQSFNhz2tY+B8/KuaWpS3O3ThlhuCprnzKscnT/w+tbnCOI7PG4dv+IF/xgp/3VhrEBz3q1h3MciPYjSyOOmysCCPlR2s5D6HU16KhR7gEdafeupHOPFK9NvSJrAHXoK4i4qG6xMQgYoZE3eRwbGPDCx5G4MljuCFBILLr8XYhlw4RWKdrJFCzDYqkrhXKnodNwD4kVx7iHFl5SgXQIyAgW40KFXQqWtp0+PPYe4bows0xEsoQ9m6R63RUsdJcMdQB5tJvve7aiTckkmJMA9mDJ3Vfs5CWUBGuQNZv9WwIIu2x5dK0mzpJVsQwaTS0jAKoXFI31eIQk7Fl+MWtuedRQ4ySaSd0CK80bJINRVHY6WZ0UjZtgbX2LX62pQmZiMC6ExsQGD6Bq2vcAg3+7Ybcx3wRzpuRZe+KxMeH1GztZjz0oN3I8O6DTMbPIQkbCxi1AG+9i2oD0BvajP6IsNG008rEa1UKi9bOSXI/wAKj3pGFHWEQKAALAAADwA5CvTUbPYE+F6GMlx+MkDsxXUGNopEZDoPw2cD25HlT6q2Hjick3a2J+L8ww8cfZTq79pchU2PcIOrUdhYkVzTEiO/1Ze3g4W48N1O/wAhXTcfioJV7PGRFPDWO6D4pIuw+YrLbg3CybxzPbyZHHztUMsJSe1fyen0eeGGNStfVHP1YqQykgjkQSCPQjcUTZRxjJHZZh2i/eFhIPXo3vY+dOmyjARyGOXESalNj3bD56TRBgOG8CVDookH3i5cfIG1JCE09mi3U58Mo+KLa7bV9TRy/M4pxeORW8RyYeqncVcqtDlkKWKRRqRyIRQR6G16s12K63PEnpvwXXqK1KlSphAPdQRUbV4r0mekHPGNQO9PY1UY3NK2FGxwvgO1nDkd1N/f/QfqKPZm3rH4UwnZxlup/U7n+Q9q0nNNBCSdjgaeDULOALkgDxJtWFmvGGHiuEPaP4L8I9W5fKmlJR3Y+LDPI6irKfGXDpl+uhW77B1H2xyDDzHXy9KrZRwPybEN/wDWh/6m/p86wMdxRiZJFfXoCkFUXZdvvfe966HkWbpiYw67MNnXqrf0rmgsc5Nnp5X1ODCo3t5rlehdweDiiXTHGqD8Itf1PM+9TOaV6r4jEKo3NdSVHkNtu2RYmg3P8sef6uJbsfDYC/UnpRZoeTn3V/M/0q5BEqCyi38/WllvsFbAhkXA8UAEk9pH52/u1PkPtHzPyoH4xfVin8gB+VdjxTWU1xLiaQftDk+NSnFJbDwdvc7RkWI7TDxP96ND76RetAGhfgLFa8FEfAFf8JIokJqseBHySFqV6YTXl6YBHmGDSeNopBdWFjY2ItuCpHIg2IPlQBn/AAfIz9puzj+8jAOsf8SPYhvErcHfYcq6GGpjtzoGOMT8OyryCA/iRv0Kb+9RNgJIA0zamcA2ZgURTty1btyGwHSuwTzJvd1HuNqHeIspTERsvaKvwkk72F/50rj5BRyCSTffwF/lToHdW1IxVhyZSVPsRRhjeCgli0yi9yO6dwOdt6y5eH1AJWYEKATYcgeRqbTQw/B8W4+PlOzDwcK/58/zrZw30k4pf7SON/TUh/nQ8+VPc2udIDGwPI/rTHy6Uf3bHa+wv4f1oWxqQdYf6SomFpIHXxsVcfI2rQwHF+XXJRljZrarxlL28SBaubJlUzcon/wmrkHCmJf+60/vECipPyDVLkLcXleHxTmRMcrXJNmIa1+g3G1aWUcNLCdaYh79dOkKfUb3oPg4DkO7yIvpdjWtgeEVjse3m/hcoPyoqKu6KS6nJp0Xt7B8DSLeNYmGBRdIdyPxNqPzNNkN+Z+dVOY2f2lPvL86VYNqVYBha69L3phFeMaQcTPfapsBHqcDoNz7ch86rE0RcMYLU6k9TqP7q8vzpQvZBhh4+zjVett/U7mmE1LiHqsTVkSK+Z5emIjMcg2PI9QehFcqzXLnw8hjfpyPRh0Irr4NYXFGXJiI9ItrX4T+oPlUM2LUrXJ39D1TwyqXD+hzGiDhrC4pJBJENI669lYeFuZrbyrh2OEa5LMw3ufhHoKtS5/CobSSxUH4VJFx0uNqjjw6d26O7P12tOGNX6vg3WxDHwHpTEA1XIv/ACoYgx2IeIz9rGgsSEtfYdCb8628mxpmiSQrpJ5j+ldSkmeTkxOKv1r9TWU+FeuwAuTYeNQI9qBOMsROz9nIWEZ5JHsGH43P6UJyUVbEjFydIvcR8WqqssJU2uDI3wA+C/fPpXKsVIzuzsxZmNySLfIdK28U6krZQQmyryVR10+J86yMR35CEVvTmajGblv9C2TC4VaOnfRbNfCvH9yQ/wCbejUNXPvo0w8kSydpGyqxUrfrajh5j0q8XsQfJcDUqqLMa9ae3Mge9NYCyzimSorqVO6sCD53rMxGZRILtIvzquc4TR2kZDKOtCxtEkraLTZTANR7IHUBqHPVp5Xv6V7DgonFjEFFgtj90G4B8r1jLxnCRfcHqD407B8WRySqo21bXrOSFphF+yJtsNr225X52rxcBEPsL8hVXOp5EjEkX2SCw8V62rIjzB58QVEhRdAaO1tz1v8AlSuVOi0MLkrvYIzhYx9kfKomhUclHyrPwGZN2jQS21jcEcnHiKizTiKGFijElvAC9qbUqtg+DPVpSv2NJgOVV3TwrNwfEkEh0hipPLVtWHmnFUiyMkaqAptc73pXkgldjw6XLKWmq9wrJprChPA8WHUBKoseo6UVI4YAg3BFxTQnGXBPLglidSR4wqJ6mNRsKYkRUq9tXlYwP0nFIUmNTKkSpqYL50Q4bP4MF3pSQG7q2BOw9KysFHuW9h6mqHE+Ty4h440XuqN26XNKuRZBpBxdg5PhmT3Nq0VxiEalIN+VqAsp4KjjIaXvt4dKLYYlQAKAAOgqysmWpJ2byFUP9pQg2Mi/OnY9nEbaBdrEAUDf7s4ljcqLnfnUpylHhWdXT4YTTcnQaYwpioXjikFztcfpVLDPLHGIxhtwLXFtJ8zVzJMGMNAA2xF2aohxTh+Wo/I0XXLdMMVLdRVpMZlPD6KpMqhnJLW6C/S1EEaBQAAAByArOw2bxyfDqPsat/tHhTRUUtiOSc5PxFg1Bio45FKSAMD0phYmvVFZ7iLYFxwhHrJ1No6L/rWzgMlhi+CNQfG1zWjavQaWONRHnmlPl2LSFFzyFCeO4qbtOzgQNva56+lEeYYbtUKayoPMjnQfkeW9njXAOpUH60s7tKJXC8cYuUlb7II5InxES6y0Tjfums/M8sayGPW7g94Mx0sPOt+vaZwvkWOdxe3HkYkWQdpZptIH3EGw9T1qbH4QLGUjWwtyFat6Y5oqCXAs8spcs5Fj8JIrt3GAv4VXw85U87Ebj1rp2aICp2FczxqaZGHnUZx0hi7Os8MZuMTAAfiA0sKzmyd0kYKdIU6o26C/NT5UE8MZscPMDfuts1dQx+HGIisrEahcEG1Mqkh4ScJVezMfEpI0sckhRBHzYH4qzeJMmMjGeI6weYFZuaZRiI9m1Oo5daJ+D8K6QktfvHYHpSrxNxaO2X4KWSMk+1ehz9lKne4I9qY7E7neuoY/JYpfiUA+IoVzHhN1uYzqHh1qU8ElxudOLrsc/wA2zBi19q6ZlURWFAeYUUF5JlrNiFV1Itub+VdBtaq9PBq2zk+0cqbUV7mPn2Z/s6A2uTsKG14rkvuqkUW5rgFnTQ3sfA0C5hkkkRO1x4ijlc07jwJ0scEo6ZLc3o+JkIFxalQbSqXx5nT9xxGvic3s2lRt1rTjkDKGHWlSqkJNtnDlgklRrQR6dI9zRGqWRfSlSq0DjkRE16hpUqoKh1LWBSpVmMVscwkRkG1xa9ZuCyWFOS3PiaVKpNJseOWSjpTNWNABYC1SItKlTiD706lSomPQ1I0qVYxG7bGh3IWvNO3W9qVKkfKCuGb+qvb0qVOA8JqJ2pUqwTNxx7prnGbW7Q0qVRyDwNzhbJUmRpH3tyFEvC2YkFoG5qdvSlSoQ7Gn3CaSxG4vSUAbDYUqVXEExrOzDMo4h3r+wr2lQY+KKbVmfhc6hdrgEN42qpn/ABCYSEVbki96VKoym9J3Y8MJZlFmTDxW9++ot5UT4PFrMmoD2NKlQxTb5G67BDHvFETZdEfsClSpV0aEed8Sfmf/2Q=="
alt="Image 1"
/>
<div class="overlay"></div>
</div>
<div class="gallery-item">
<img
src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR3hif91wqmCJ4RGj47lrHz2JBQSFRKGcAdug&usqp=CAU"
alt="Image 1"
/>
<div class="overlay"></div>
</div>
<div class="gallery-item">
<img
src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSMXmsgl909xzfk56YAuJa2v2s3gmpSuufrIg&usqp=CAU"
alt="Image 1"
/>
<div class="overlay"></div>
</div>
</div>
<script src="index.js"></script>
</body>
</html>
styles.css
body {
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f0f0f0;
}
.grid-gallery {
display: grid;
grid-template-columns: repeat(3, 200px);
grid-gap: 20px;
}
.gallery-item {
position: relative;
overflow: hidden;
}
.gallery-item img {
width: 100%;
height: auto;
display: block;
border-radius: 10px;
}
.gallery-item .overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
opacity: 0;
transition: opacity 0.3s ease;
}
index.js
const galleryItems = document.querySelectorAll(".gallery-item");
galleryItems.forEach((item) => {
item.addEventListener("mouseover", () => {
item.querySelector("img").style.transform = "scale(1.1)";
item.querySelector(".overlay").style.opacity = "1";
});
item.addEventListener("mouseout", () => {
item.querySelector("img").style.transform = "scale(1)";
item.querySelector(".overlay").style.opacity = "0";
});
});
Code Explanation:
---------------------------------------
1. The HTML file contains a "grid-gallery" container and gallery items.
2. The CSS code styles the grid gallery and its items, providing necessary properties for layout and animation.
3. In the JavaScript file, we use the document.querySelectorAll() method to select all the gallery items and store them in the galleryItems variable.
4. Through a forEach loop, event listeners are added to each gallery item. When the user hovers over an item, the mouseover event is triggered. Inside the event listener, the JavaScript code increases the image's scale by 10% and sets the overlay's opacity to 1, creating a scaling and fading animation effect.
5. Similarly, when the user moves the mouse away from an item (mouseout event), the image is scaled back to its original size, and the overlay's opacity is set back to 0, removing the animation effects.
In addition to this example, there are many other ways to control CSS animations and transitions with JavaScript. For example, you can use JavaScript to:
- Change the duration of a transition: You can use JavaScript to change the duration of a transition by setting the transition-duration property on the element.
- Change the timing function of a transition: You can use JavaScript to change the timing function of a transition by setting the transition-timing-function property on the element.
Trigger a transition on a specific event: You can use JavaScript to trigger a transition on a specific event by listening for the transitionend event on the element.
Controlling CSS animations and transitions with JavaScript offers several advantages that enhance the user experience and provide more flexibility in designing engaging web interfaces:
-
Dynamic Animations: By utilizing JavaScript to control CSS animations, you can create animations that respond in real-time to user interactions, events, or changes in data. This dynamic behavior allows for more interactive and visually appealing effects, making your website or application feel alive and responsive.
-
Customization Options: JavaScript provides extensive control over animation parameters, such as timing, duration, easing functions, and more. This level of customization allows you to tailor animations to suit specific design requirements and align them with your overall user interface.
-
Conditional Animations: With JavaScript, you can trigger animations conditionally based on various criteria or user actions. For example, you can animate an element only when a certain event occurs or when specific conditions are met. This versatility adds a layer of complexity and responsiveness to your web elements, enhancing the overall user experience.
-
Synchronization with Other Operations: JavaScript allows you to synchronize CSS animations with other JavaScript operations or events. This synchronization enables seamless coordination between animations and other elements on the page, ensuring a cohesive and well-orchestrated user interface.
-
Animation Sequences: Using JavaScript, you can chain multiple animations together to create complex animation sequences. This capability empowers you to craft more sophisticated visual effects and transitions between different states of your web elements, contributing to a richer and more captivating user experience.
If you have a project in mind related to web or mobile app development, assistance from our skilled app developers can help you get started in the right direction.
September 8, 2024 at 02:38 am
Your comment is awaiting moderation.