Reputation: 13
In this code i want to make the 3 div's count up by one when you scroll up and count down when you scroll down. For some reason the first time you scroll it doesnt do it for all the div's, and they don't add up properly. Can someone help?
var Value = 1;
function show() {
if (Value === null) {
Value = 1;
}
document.getElementById("ValueCenter").innerHTML = Value;
document.getElementById("ValueCenter").addEventListener('wheel', function (e) {
if (e.deltaY < 0) {
add();
}
if (e.deltaY > 0) {
decrease();
}
});
}
function showRest() {
document.getElementById("ValueUpper").innerHTML = Value - 1;
document.getElementById("ValueDown").innerHTML = Value + 1;
}
function add() {
document.getElementById("ValueCenter").innerHTML = Value++;
document.getElementById("ValueUpper").innerHTML = Value++;
document.getElementById("ValueDown").innerHTML = Value++;
}
function decrease() {
document.getElementById("ValueCenter").innerHTML = Value--;
document.getElementById("ValueUpper").innerHTML = Value--;
document.getElementById("ValueDown").innerHTML = Value--;
}
#ValueUpper, #ValueCenter, #ValueDown{
font-size: 20pt;
}
<!DOCTYPE html>
<head>
<title>1</title>
<link rel="stylesheet" type="text/css" href="css/wheel.css">
<link rel="stylesheet" href="style.css" type="text/css"/>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/wheel.js"></script>
</head>
<body onload="show(); showRest();">
<div id="ValueUpper"></div>
<div id="ValueCenter"></div>
<div id="ValueDown"></div>
</body>
Upvotes: 1
Views: 90
Reputation: 334
var Value = 1;
function show() {
if (Value === null) {
Value = 1;
}
document.getElementById("ValueCenter").innerHTML = Value;
document.getElementById("ValueCenter").addEventListener('wheel', function (e) {
if (e.deltaY < 0) {
add();
}
if (e.deltaY > 0) {
decrease();
}
});
}
function showRest() {
document.getElementById("ValueUpper").innerHTML = Value-1;
document.getElementById("ValueDown").innerHTML = Value+1;
}
function add() {
document.getElementById("ValueCenter").innerHTML = ++Value;
showRest();
}
function decrease() {
document.getElementById("ValueCenter").innerHTML = --Value;
showRest()
}
#ValueUpper{
font-size: 20pt;
}
#ValueCenter{
font-size: 20pt;
}
#ValueDown{
font-size: 20pt;
}
<!DOCTYPE html>
<head>
<title>1</title>
</head>
<body onload="show(); showRest();">
<div id="ValueUpper"></div>
<div id="ValueCenter"></div>
<div id="ValueDown"></div>
</body>
Upvotes: 0
Reputation: 386680
You may use prefix notation of the increment operator ++
, which increments the value first and then returns that new value instead of using postfix notation (same for the decrement operator --
.
document.getElementById("ValueCenter").innerHTML = ++Value;
// ^^ prefix
Upvotes: 1