3
\$\begingroup\$

I am new in the JavaScript world and I just want to know if I can optimize my function by making it shorter. It already works but I plan to add five timelines to trigger with my slidenum variable. Here is the code :

var slidenum = 0;
var skrollViewport = document.getElementById('wrapper');
skrollViewport.addEventListener('wheel', skrollSlide);
function skrollSlide(event) {
 var delta;
 if (event.wheelDelta) {
 delta = event.wheelDelta;
 } else {
 delta = -1* event.deltaY;
 }
 if (delta <0) {
 slidenum++;
 } else if (delta >0) {
 slidenum = slidenum>0 ? --slidenum : 0;
 }
 if (slidenum > 0) {
 slide1.play()
 } else if (slidenum < 1) {
 slide1.reverse()
 }
 if (slidenum > 1) {
 slide2.play()
 } else if (slidenum < 2) {
 slide2.reverse()
 }
 console.log(slidenum);
}
t3chb0t
44.6k9 gold badges84 silver badges190 bronze badges
asked Nov 3, 2017 at 16:29
\$\endgroup\$
3
  • \$\begingroup\$ I'm using greensock lib. \$\endgroup\$ Commented Nov 3, 2017 at 16:51
  • \$\begingroup\$ what is a timeline in this context? Do you consider slide1 and slide2 as timelines? Those are tweens (i.e. result of calling TweenLite.to()), right? \$\endgroup\$ Commented Nov 3, 2017 at 20:26
  • \$\begingroup\$ Yes, slide1 and slide2 are two different timelines. \$\endgroup\$ Commented Nov 4, 2017 at 4:41

1 Answer 1

1
\$\begingroup\$

This:

var delta;
if (event.wheelDelta) {
 delta = event.wheelDelta;
} else {
 delta = -1* event.deltaY;
}

could be simplified to:

var delta = event.wheelDelta ? event.wheelDelta : -event.deltaY;

or even more succinctly:

var delta = event.wheelDelta || - event.deltaY;

For the if/else:

if (slidenum > 0) {
 slide1.play()
} else if (slidenum < 1) {
 slide1.reverse()
}

I personally find your end points take me a while to understand because of the way they overlap. I would find it easier like this:

if (slidenum >= 1) {
 slide1.play()
} else if (slidenum < 1) {
 slide1.reverse()
}

Or without the else which is redundant in this case.

if (slidenum > 0) {
 slide1.play()
} else {
 slide1.reverse()
}
answered Nov 3, 2017 at 20:36
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.