Day 27 of #javascript30 makes a neat horizontal scroll click and drag accordion or carousel.
There are a number of event listeners in use to achieve this. mousedown
, mouseleave
, mouseup
, and mousemove
. They keep a boolean that keeps track of whether the mouse is down or up, and they set the Element.scrollLeft property to the number of pixels the user dragged the element.
let
vs var
I understand const
completely now, but I was fuzzy on let
vs var
. They are quite similar, but they differ in scope. Once again, MDN's docs has a great explanation and example:
function varTest() {
var x = 1;
if (true) {
var x = 2; // same variable!
console.log(x); // 2
}
console.log(x); // 2
}
function letTest() {
let x = 1;
if (true) {
let x = 2; // different variable
console.log(x); // 2
}
console.log(x); // 1
}
So var
has scope in the entire function, while let
has function in the block it is in (and all sub-blocks in that block).