The animation effect is stuck at the bottom of my screen instead of expanding across the entire screen as it should

I've been experimenting with a Udemy project and I'm looking to add a confetti animation when the answer is correct. However, the confetti animation appears at the bottom of my screen. How can I adjust it to cover the entire screen?

Below is a picture of how it currently looks when executed along with the JavaScript code for the confetti animation. Thank you!

Here's the relevant code snippet:

let maxParticleCount = 150; //maximum number of confetti particles
let particleSpeed = 2; //speed of the particle animation
let startConfetti; //function to start the confetti animation
let stopConfetti; //function to stop adding confetti
let toggleConfetti; //function to toggle the confetti animation on or off
let removeConfetti; //function to stop and remove all confetti immediately

//JavaScript code for confetti animation
(function () {
  //functions for starting, stopping, toggling, and removing confetti
})();

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@600&display=swap');

/* CSS styles for layout and elements */

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="stylesheet" href="style.css" />
    <title>Guess My Number!</title>
  </head>
  <body>
    <script src="confetti.js"></script>

    /* HTML structure for Guess My Number game */
  </body>
</html>

Answer №1

It appears that the HTML code you provided does not include a canvas element, but rather creates it dynamically in the JavaScript code like so:

canvas = document.createElement('canvas');
// ...
document.body.appendChild(canvas);

This results in the canvas element being added to the end of the body:

<body>
<header>...</header>
<main>...</main>
<canvas >
</body>

Since there is no specific styling for this canvas in your CSS, it may naturally fall below the header and main elements due to standard block element positioning rules.

To address this issue, consider adding the following to your style.css file:

#confetti-canvas {
    top: 0;
    position: absolute;
}

This will ensure that the confetti canvas starts from the top of the screen and is positioned absolutely (typically desired for overlay elements).

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Switching between different Vaadin tabs using client-side technology

I am currently working on a project to enhance the navigation experience on a website. To achieve this, I am creating a Silverlight component that will enable users to switch between tabs in a Tabsheet. While exploring the functionalities, I came across an ...

Error message encountered when using CKEditor in an Angular.js application

While using ckeditor to edit content, I have included the module and linked all necessary files. However, an error is being thrown: TypeError: this[a] is undefined. As a newcomer to Angular, I'm unable to find a solution on my own. Could someone plea ...

Interactive radio button that only registers the most recent click

Homepage.jsx const Homepage = () => { const [categories, setCategories] = useState([]) const [products, setProducts] = useState([]) const [selected, setSelected] = useState("all") const getAllCategories = async() => { try{ ...

Changing the background color of the canvas using Javascript

I want to create a rect on a canvas with a slightly transparent background, but I don't want the drawn rect to have any background. Here is an example of what I'm looking for: https://i.stack.imgur.com/axtcE.png The code I am using is as follo ...

Creating a GIF file using Node.js leads to a corrupted image

I have been experimenting with creating a simple GIF. I followed the example provided in this NPM library for guidance. Despite my efforts, every time I generate the GIF, it appears as a corrupted image file. CODE const CanvasGifEncoder = require('ca ...

What is the best way to disregard all pathNames and display my index.php file directly from the root of my website?

After a user clicks on a navigation link on my website, the page is loaded into a content window within the same page using JavaScript. I then utilize HTML 5 to modify the URL and create a history entry, resulting in a URL resembling the one mentioned (). ...

Displayed information on hover

https://i.sstatic.net/XVQWG.jpg I've been searching high and low for a simple textbox that appears when you hover over an image, positioned either to the left or the right. I don't need anything too fancy - just a rectangular box with a backgrou ...

Issue with Typescript Application not navigating into the node_modules directory

After attempting to load the app from the root directory of our server, it became clear that this was not a practical solution due to the way our application uses pretty URLs. For instance, trying to access a page with a URL like http://www.website.com/mod ...

Selecting either "THREE.NearestFilter" or "THREE.LinearFilter" will result in the black plane

During my experimentation with the THREE.js library, I encountered a notification stating: THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter. To address this issue, I made the ...

Error encountered while attempting to define a method in a class component in React.js

Can you tell me if these two code snippets are equivalent? async onSearchSubmit(term) { const response = await axios.get('https://api.somewebsite.com/search/photos', { params: {query: term}, headers:{ ...

Utilizing PHP and JavaScript in a multi-page setting

Apologies for the length of this post in advance. I've been struggling with a coding issue for quite some time now and haven't been able to find a solution. To provide more context and help to those who might assist me, I'm including most of ...

Creating a tree structure from an array in JavaScript, including the parent id enclosed in brackets

Before dismissing this question as a duplicate, please listen to me. I am working with a json response in reactjs that looks like the following organisationUnits: [ { name: "0.Mzondo", id: "nW4j6JDVFGn", parent: { ...

The function res.render is not displaying the new page

I have a task that seems straightforward. On my header, I am loading a few a links. <a class="nav-link" href="menu">Menu 1</a> I am attempting to access the URL /menu from this link. In my app.js file: app.use('/', index); app.us ...

Phonegap app: The function in the AngularJS controller is only executed when called twice

I am currently developing a phonegap app using angularJS, and I have encountered an issue with a function in one of my controllers. Here is how my controller looks like: function NavCtrl($scope,navSvc) { $scope.slidePage = function (path,type) { ...

JavaScript implementation causing Safari to display a blank page

After diving into JavaScript recently, I encountered some issues right away. I've been attempting to run a simple "Hello World" program but no success so far. Each time I open the html file in Safari, it displays only a blank page. Despite having enab ...

Three.js dynamic bone animation: bringing your project to life

Can transformations be applied to the bones of a 3D model in three.js to create a dynamic animation? I attempted to move and rotate the bones of a SkinnedMesh, but the mesh did not update. loader = new THREE.JSONLoader(); loader.load(&apos ...

Steps to assign the identifier as the current index in the v-for iteration

Struggling to assign the id based on the index of a v-for loop. I attempted: <li v-for="(item, index) in items" v-bind:key="item.id"> <p>{{item.name}}</p> <input id= {{index}} type= "number"> < ...

Calculating the sum of all values in the database

In my database, I have a value called task_time. I want to add this value to itself so that the total time is calculated as totalTime = task_time + task_time + ... + task_time. This is how I retrieve the data: function getEndTasks() { $http.get(& ...

Adding QML code into a Jade file

Currently working on developing a straightforward video streaming application using Node.js and integrating the WebChimera plugin. The player configuration is done in QML with Chimera, and I am facing numerous errors during the compilation process in Jade. ...

Scrollmagic - Creating dynamic effects by animating body and div backgrounds using multiple tweens

I'm currently developing a website that utilizes scrollmagic to smoothly transition the color of the active div (each set to size of the screen) from black back to white as you scroll down. The issue I am facing is that the body background color does ...