Mouse Scroll Event Up/Down Example in JavaScript

The other day I was working on an App that required Google Map like functionality where Mouse Scroll event on an object triggered some action in JavaScript. Handling Mouse Wheel in JavaScript is quite simple. Most of the browsers support Mouse Scroll Event in one or other way. Mozilla provides window.addEventListener method that can be used to hook a handler for mouse scroll event. Internet Explorer and Opera on the other hand provides document.onmousewheel handler to hook the mouse event.

Source Code

Let us see an example for catching mouse scroll wheel event in JavaScript. In our example we will have a small DIV that moves up and down on scroll of mouse wheel. Following is the source code of our example:
<html> <head> <title>Mouse Scroll Wheel example in JavaScript - ViralPatel.net</title> <style> #scroll { width: 250px; height: 50px; border: 2px solid black; background-color: lightyellow; top: 100px; left: 50px; position:absolute; } </style> <script language="javascript"> window.onload = function() { //adding the event listerner for Mozilla if(window.addEventListener) document.addEventListener('DOMMouseScroll', moveObject, false); //for IE/OPERA etc document.onmousewheel = moveObject; } function moveObject(event) { var delta = 0; if (!event) event = window.event; // normalize the delta if (event.wheelDelta) { // IE and Opera delta = event.wheelDelta / 60; } else if (event.detail) { // W3C delta = -event.detail / 2; } var currPos=document.getElementById('scroll').offsetTop; //calculating the next position of the object currPos=parseInt(currPos)-(delta*10); //moving the position of the object document.getElementById('scroll').style.top = currPos+"px"; document.getElementById('scroll').innerHTML = event.wheelDelta + ":" + event.detail; } </script> </head> <body> Scroll mouse wheel to move this DIV up and down. <div id="scroll">Dancing Div</div> </body> </html>
Code language: JavaScript (javascript)

Online Demo

Online Demo – Mouse Scroll Event in JavaScript

View Comments

  • Hi scvinodkumar, you may use this when you want to create something like Google Maps or may be a timeline based UI where you scroll the time line to left or right on scroll event. :)

  • Just what i was looking for.

    Can this be used to scroll horizontally ?

    Also, Can it be used if one wants to hold down the left mouse button and move on the timeline.

    • In order to scroll horizontally, just change
      var currPos=document.getElementById('scroll').offsetTop;
      to
      var currPos=document.getElementById('scroll').offsetLeft;
      and
      document.getElementById('scroll').style.top = currPos+"px";
      to
      document.getElementById('scroll').style.left = currPos+"px";

  • Hi, how can I set a handler on event SCROLLING UP in div, 'caz scroll(); -it's scrolling everywhere (up/down), but I need only when I scrolling UP my scroll-bar?

  • An awesome post for the learner like me please do post such types of post for us thanks again....

Share
Published by
Viral Patel
Tags: JavaScript javascript events mouse scroll event

Recent Posts

  • Java

Java URL Encoder/Decoder Example

Java URL Encoder/Decoder Example - In this tutorial we will see how to URL encode/decode…

4 years ago
  • General

How to Show Multiple Examples in OpenAPI Spec

Show Multiple Examples in OpenAPI - OpenAPI (aka Swagger) Specifications has become a defecto standard…

4 years ago
  • General

How to Run Local WordPress using Docker

Local WordPress using Docker - Running a local WordPress development environment is crucial for testing…

4 years ago
  • Java

Create and Validate JWT Token in Java using JJWT

1. JWT Token Overview JSON Web Token (JWT) is an open standard defines a compact…

4 years ago
  • Spring Boot

Spring Boot GraphQL Subscription Realtime API

GraphQL Subscription provides a great way of building real-time API. In this tutorial we will…

4 years ago
  • Spring Boot

Spring Boot DynamoDB Integration Test using Testcontainers

1. Overview Spring Boot Webflux DynamoDB Integration tests - In this tutorial we will see…

5 years ago