Not able to increase value using 'wheel' event listener

I'm experimenting with incrementing a variable based on whether someone scrolls down or up the page.

The event triggers each time you scroll in either direction, but the value only increases by one. Can anyone suggest a reason for this behavior?

window.addEventListener("wheel", function (e) {
  const y = e.deltaY;
  let scrollIndex = 0;
  if (y > 0) {
    scrollIndex++;
  } else {
    scrollIndex--;
  }
  console.log(`Scroll index: ${scrollIndex}`);
});

Answer №1

Each time a new scrollIndex variable is set to zero, it causes the issue. To fix this, move the scrollIndex declaration outside of the function. Here is an example:

let scrollIndex = 0;
window.addEventListener("wheel", function (e) {
  const y = e.deltaY;

  if (y > 0) {
    scrollIndex++;
  } else {
    scrollIndex--;
  }
  console.log(`Scroll index: ${scrollIndex}`);
});

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

The checkbox generated from the JSON is failing to display the alert when it is clicked

I have been trying to pass checkbox input from JSON into HTML. When I click on the checkbox, an alert should pop up, but it's not working. Here is my code: $aroundCheck='<div id="content">'; foreach ($checkLocation as $checkLocation) ...

Retrieve information in JSON structure

Currently, I am making a GET http request to the Google Civic's API. The purpose is to provide an address and in return receive information about members of the U.S. government based on the location of the provided address. // In the code below, the ...

Finding the location of PIE.htc in the Firebug tool

After encountering issues with CSS3 properties not working on IE 7 and IE 8, I decided to include PIE.HTC. Visit this link for more information Upon viewing the page in IE, I realized that the CSS3 properties were not being applied as expected. I attempt ...

Displaying properties of a class in Typescript using a default getter: Simplified guide

Here is an interface and a class that I am working with: export interface ISample { propA: string; propB: string; } export class Sample { private props = {} as ISample; public get propA(): string { return this.props.propA; } public se ...

Untangling REGEX URLs for Effective Filtering

I am currently working on creating a filter for a video list. I have successfully put together a string that includes all the values selected by the user for filtering. Right now, I am passing this string as a parameter through the URL. For example: NOTE ...

Error message in previous React-Redux project: nativeEvent.path is undefined

Currently, I am following a detailed guide to create a character sheet using React-Redux. https://www.youtube.com/watch?v=cPlejG83B1Y&list=PLJ-47dnNMd_jke6l27GmEiDk5XJGcr_HE&index=5 I have some basic knowledge of React from a tutorial I started y ...

Tips for retrieving data from a concealed input within a div that is being looped through in Angular.js

Currently, I have a controller that sends data to the UI and uses the ng-repeat directive to map them. My next goal is to bind this data with a hidden input form and then send it to another function in the controller when a click event occurs. Any tips on ...

The parser encountered an unexpected token while attempting to parse the provided string

Struggling to correctly parse a JSON response from a server using node, as it is showing up as a string. Here's an example: "{name:'hello'}" Recreated the issue here: http://jsfiddle.net/x5sup14j/ Tried replace(/'/g, '"'); ...

php ajax access issue

Recently I've been encountering an issue where I am unable to access my php file using the $.ajax() function. Every time I make the call, I receive a jqXHR status of 0. Here is the code snippet that I am working with: Function with $.ajax() call: fu ...

AngularJS Update Parent-Child Relationship: Enhancing the Details

When Panel header is clicked, I want to update the respective Panel body with the corresponding data. In my Angular code on Plunker, clicking "Test1" should only update "Test1detail" in the body. Click here for the Plunker Here's the code snippet fr ...

An assessment consisting of three parts, with the initial section required to match the size of the browser window using jQuery and Javascript

UPDATE: The issue was resolved by adding the Doctype at the top of the page - "<!DOCTYPE html>" (no spaces between tags < , > and other characters) I am experimenting with a webpage that contains four sections. The first section should take up ...

Retrieving Memory Usage of a Process in Node.js/JavaScript

I'm currently exploring ways to access the memory of a running process. For my web application, I have a server built with Node.js, an app.js file, and an agent that communicates with app.js through the server. I'm interested in finding a metho ...

Accessing information from a JSON array

I am encountering difficulties in fetching data from a JSON file. Whenever I click the button, it triggers the call function which then retrieves data from the json.jsp file containing an array. However, I am unable to retrieve the data successfully. Below ...

Is there a way to incorporate an external JavaScript file into a .ts file without the need for conversion?

I have an external JavaScript file that I need to utilize in a .ts file without performing any conversion. Does anyone know how to use it within TypeScript without the need for conversion? ...

How can I implement a progress bar that mimics an exchange platform behind data-table components? [Using Vue and Vuetify]

I am working on a cryptocurrency exchange book simulator and I am trying to implement a progress bar that will be displayed behind the values in a table. https://i.stack.imgur.com/9gVsY.png This is the template for my data-table: < ...

What is the best way to create a line break within a loop in React?

I have a react component that I need to format into multiple lines, specifically having 2 boxes on top and 3 below in a looped return. The desired layout is to stack the boxes in 2x2 or 2x3 depending on the total number of boxes generated by the loop. So, ...

Customize your select element's background using jQuery when the content changes

Here is a select element with different options to choose from: <select class="state"> <option value="1">Done</option> <option value="2">Closed</option> <option value="2">Open</option> <option v ...

How to work with multiple selections in React material-ui Autocomplete

I'm currently using Material-ui Autocomplete in multiple selection mode. My goal is to retrieve all the selected values when the form is submitted. Although I found a solution on how to get individual values through the onChange event handler from thi ...

Leveraging union types in Mongoose and typescript: Accessing data from a populated field with multiple value options

In my codebase, I have the following models: CoupleModel.ts import mongoose, { Model, Schema } from 'mongoose'; import { CoupleType } from '../types/coupleTypes'; const coupleSchema = new Schema( { user1: { t ...

Tips for managing the retrieval of non-existent images in JavaScript with LiipImagineBundle

I need to verify the existence of a file in NodeJS. While exploring a previous post, I came across this solution: const tryRequire = (path) => { try { return require(`${path}`); } catch (err) { return null; } }; However, is this the most ...