This JavaScript library, inspired by the classic game Doom, adds a fun, retro-style damage flash effect to your webpage's scrolling experience. The effect cleverly mimics Doom's iconic red screen flash upon taking damage, creating a tongue-in-cheek "doom scrolling" interaction.
This example focuses on the core damage animation using HTML and CSS. A full-screen overlay is created:
<div id="doom-damage"></div>
#doom-damage { background-color: red; position: fixed; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; /* Prevents interference with page interaction */ }
Notice the opacity: 0
and pointer-events: none
styles. The overlay is initially invisible and doesn't block user interaction. Using opacity
for animation is more efficient than toggling display
, avoiding the performance issues associated with display changes during animations.
The damage flash is triggered by adding a class:
const damage = document.getElementById("doom-damage"); function doomTakeDamage() { damage.classList.add("do-damage"); setTimeout(() => { damage.classList.remove("do-damage"); }, 400); }
The .do-damage
class applies a CSS animation:
.do-damage { background-color: red; animation: 0.4s doom-damage forwards; } @keyframes doom-damage { 0% { opacity: 1; } 100% { opacity: 0; } }
This creates an immediate red flash followed by a smooth fade-out.
The final piece of the puzzle (not shown here but included in the linked CodePen) involves a scroll event listener that calls doomTakeDamage()
at specific scroll intervals, creating the dynamic "doom scrolling" effect. The full code is available in the provided CodePen for a complete implementation.
The above is the detailed content of Doom Damage Flash on Scroll. For more information, please follow other related articles on the PHP Chinese website!

There is very little guidance on how to organize front-end applications in the world of React. (Just move files around until it “feels right,” lol). The truth

Most of the time you don’t really care about whether a user is actively engaged or temporarily inactive on your application. Inactive, meaning, perhaps they

Wufoo has always been great with integrations. They have integrations with specific apps, like Campaign Monitor, Mailchimp, and Typekit, but they also

It's no big secret that Netlify invented the term JAMstack. While it's possible to embrace the JAMstack without using Netlify, it's notable that Netlify is at

I recently did an AMA over on DEV. Just taking the opportunity to port over some answers here like a good indiewebber.

Gatsby and WordPress is an interesting combo to watch. On one hand, it makes perfect sense. Gatsby can suck up data from anywhere, and with WordPress having a


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download
The most popular open source editor

Dreamweaver CS6
Visual web development tools