How to smoothly change scene background color

Hi, I am trying to make my scene background color to change smoothly to linear gradient when I scroll through 50% of page content (in my scroll event listener):
The problem is that the change is immediate, I wanna change it smoothly.

Define black as the default background color like so:

scene.background = new THREE.Color(0x000000);

In your scroll even listener, do this instead of directly setting the color to red:, {
      duration: 2,
      r: 1,
      g: 0,
      b: 0