<p> .</p> <script> addEventListener("click", function() { console.log("!"); }); </script>
<button> .</button> <p> .</p> <script> var button = document.querySelector("button"); button.addEventListener("click", function() { console.log(" ."); }); </script>
<button>Act-once button</button> <script> var button = document.querySelector("button"); function once() { console.log("Done."); button.removeEventListener("click", once); } button.addEventListener("click", once); </script>
<button> , !</button> <script> var button = document.querySelector("button"); button.addEventListener("mousedown", function(event) { if (event.which == 1) console.log(""); else if (event.which == 2) console.log(""); else if (event.which == 3) console.log(""); }); </script>
<p> <button> </button>.</p> <script> var para = document.querySelector("p"); var button = document.querySelector("button"); para.addEventListener("mousedown", function() { console.log(" ."); }); button.addEventListener("mousedown", function(event) { console.log(" ."); if (event.which == 3) event.stopPropagation(); }); </script>
<button>A</button> <button>B</button> <button>C</button> <script> document.body.addEventListener("click", function(event) { if (event.target.nodeName == "BUTTON") console.log("Clicked", event.target.textContent); }); </script>
<a href="https://developer.mozilla.org/">MDN</a> <script> var link = document.querySelector("a"); link.addEventListener("click", function(event) { console.log("."); event.preventDefault(); }); </script>
<p> V .</p> <script> addEventListener("keydown", function(event) { if (event.keyCode == 86) document.body.style.background = "violet"; }); addEventListener("keyup", function(event) { if (event.keyCode == 86) document.body.style.background = ""; }); </script>
console.log("Violet".charCodeAt(0)); // → 86 console.log("1".charCodeAt(0)); // → 49
<p> Ctrl-Space .</p> <script> addEventListener("keydown", function(event) { if (event.keyCode == 32 && event.ctrlKey) console.log("!"); }); </script>
<p> .</p> <script> addEventListener("keypress", function(event) { console.log(String.fromCharCode(event.charCode)); }); </script>
<style> body { height: 200px; background: beige; } .dot { height: 8px; width: 8px; border-radius: 4px; /* */ background: blue; position: absolute; } </style> <script> addEventListener("click", function(event) { var dot = document.createElement("div"); dot.className = "dot"; dot.style.left = (event.pageX - 4) + "px"; dot.style.top = (event.pageY - 4) + "px"; document.body.appendChild(dot); }); </script>
<p> :</p> <div style="background: orange; width: 60px; height: 20px"> </div> <script> var lastX; // var rect = document.querySelector("div"); rect.addEventListener("mousedown", function(event) { if (event.which == 1) { lastX = event.pageX; addEventListener("mousemove", moved); event.preventDefault(); // } }); function moved(event) { if (event.which != 1) { removeEventListener("mousemove", moved); } else { var dist = event.pageX - lastX; var newWidth = Math.max(10, rect.offsetWidth + dist); rect.style.width = newWidth + "px"; lastX = event.pageX; } } </script>
<p> <strong> </strong>.</p> <script> var para = document.querySelector("p"); function isInside(node, target) { for (; node != null; node = node.parentNode) if (node == target) return true; } para.addEventListener("mouseover", function(event) { if (!isInside(event.relatedTarget, para)) para.style.color = "red"; }); para.addEventListener("mouseout", function(event) { if (!isInside(event.relatedTarget, para)) para.style.color = ""; }); </script>
<style> p:hover { color: red } </style> <p> <strong> </strong>.</p>
<style> .progress { border: 1px solid blue; width: 100px; position: fixed; top: 10px; right: 10px; } .progress > div { height: 12px; background: blue; width: 0%; } body { height: 2000px; } </style> <div class="progress"><div></div></div> <p>Scroll me...</p> <script> var bar = document.querySelector(".progress div"); addEventListener("scroll", function() { var max = document.body.scrollHeight - innerHeight; var percent = (pageYOffset / max) * 100; bar.style.width = percent + "%"; }); </script>
<p>: <input type="text" data-help=" "></p> <p>: <input type="text" data-help=" "></p> <p id="help"></p> <script> var help = document.querySelector("#help"); var fields = document.querySelectorAll("input"); for (var i = 0; i < fields.length; i++) { fields[i].addEventListener("focus", function(event) { var text = event.target.getAttribute("data-help"); help.textContent = text; }); fields[i].addEventListener("blur", function(event) { help.textContent = ""; }); } </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
, . – , - , .
, , “load”, , . , .
(, ), "beforeunload". – . , , preventDefault. . , , . , , , , .
. - . – . 13 requestAnimationFrame, . .
, , . , . , . , , .
. , . , .
, JavaScript , . - , , « » (web worker) – JavaScript, , .
, code/squareworker.js:
addEventListener("message", function(event) { postMessage(event.data * event.data); });
, – , , . «», , .
var squareWorker = new Worker("code/squareworker.js"); squareWorker.addEventListener("message", function(event) { console.log("The worker responded:", event.data); }); squareWorker.postMessage(10); squareWorker.postMessage(24);
postMessage , “message” . , , Worker, , , – , .
setTimeout requestAnimationFrame. . , . :
<script> document.body.style.background = "blue"; setTimeout(function() { document.body.style.background = "yellow"; }, 2000); </script>
. , , setTimeout, clearTimeout.
var bombTimer = setTimeout(function() { console.log("BOOM!"); }, 500); if (Math.random() < 0.5) { // 50% chance console.log("Defused."); clearTimeout(bombTimer); }
cancelAnimationFrame , clearTimeout – , requestAnimationFrame, ( ).
, setInterval clearInterval , X .
var ticks = 0; var clock = setInterval(function() { console.log("tick", ticks++); if (ticks == 10) { clearInterval(clock); console.log("stop."); } }, 200);
(debouncing)
(, "mousemove" "scroll"). «», , .
- , setTimeout, , . « » . .
-, , . , , . , . , , (, ), .
<textarea> -...</textarea> <script> var textarea = document.querySelector("textarea"); var timeout; textarea.addEventListener("keydown", function() { clearTimeout(timeout); timeout = setTimeout(function() { console.log(" ."); }, 500); }); </script>
undefined clearTimeout, , , . , , .
, , , , . , "mousemove", , 250 .
<script> function displayCoords(event) { document.body.textContent = " " + event.pageX + ", " + event.pageY; } var scheduled = false, lastEvent; addEventListener("mousemove", function(event) { lastEvent = event; if (!scheduled) { scheduled = true; setTimeout(function() { scheduled = false; displayCoords(lastEvent); }, 250); } }); </script>
, . addEventListener.
("keydown", "focus", ). DOM, , .
. , (stopPropagation) (preventDefault).
"keydown", "keypress" "keyup". "mousedown", "mouseup" "click". "mousemove", "mouseenter" "mouseout".
“scroll”, "focus" "blur". , window “load”.
. .
1928 2013 Q, W X . – , .
, , . .
<input type="text"> <script> var field = document.querySelector("input"); // Your code here. </script>
JavaScript, , . « » - , .
, . , . .
. , . – , , "mousemove".
<style> .trail { /* className , */ position: absolute; height: 6px; width: 6px; border-radius: 3px; background: teal; } body { height: 300px; } </style> <script> // . </script>
. , .
. asTabs, DOM, , . , , , data-tabname. , , ( display style none), .
, , .
<div id="wrapper"> <div data-tabname="one"> </div> <div data-tabname="two"> </div> <div data-tabname="three"> </div> </div> <script> function asTabs(node) { // . } asTabs(document.querySelector("#wrapper")); </script>
Source: https://habr.com/ru/post/244041/
All Articles