
World Wide Web
The WorldWideWeb (W3) is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of documents.Everything there is online about W3 is linked directly or indirectly to this document, including an executive summary of the project,Mailing lists, Policy, November's W3 news, Frequently Asked Questions.
- What's out there?
- Pointers to the world's online information, subjects, W3 servers, etc.
- Help
- on the browser you are using
- Software Products
- A list of W3 project components and their current state. (e.g. Line Mode, X11 Viola, NeXTStep, Servers, Tools, Mail robot, Library)
- Technical
- Details of protocols, formats, program internals etc
- Bibliography
- Paper documentation on W3 and references.
- People
- A list of some people involved in the project.
- History
- A summary of the history of the project.
- How can I help ?
- If you would like to support the web..
- Getting code
- Getting the code by anonymous FTP, etc.
transition: opacity 1s;
@keyframes woah!! { from { transform: rotate3d(0, 1, 0.5, 3.142rad); } to { transform: rotate3d(0, 0, 0, 0); } }
function slideIn(el: HTMLElement) { const distanceToOffscreen = el.offsetLeft + el.clientWidth; el.animate( [ { transform: `translateX(${distanceToOffscreen}px)` }, { transform: "translateX(0)" }, ], { duration: distanceToOffscreen * 2, easing: "linear(0, 0.029 1.3%, 0.119 2.8%...)", }, ); }
Motion
// calculate distance to new house:const distance = newHouse.offsetLeft - oldHouse.offsetLeft;// calculate distance to new house:const distance = newHouse.offsetLeft - oldHouse.offsetLeft;// update egg’s position:egg.style.translate = distance + "px";// calculate distance to new house:const distance = newHouse.offsetLeft - oldHouse.offsetLeft;// update egg’s position:egg.style.translate = distance + "px";// what about a function we can call repeatedly?function moveEgg() { // move our egg slowly, // a little bit at a time}let x = 0;function moveEgg() { x++; egg.style.translate = x + "px";}let x = 0; // {xpos}pxfunction moveEgg() { x++; egg.style.translate = x + "px";}moveEgg();let x = 0; // {xpos}pxfunction moveEgg() { x++; egg.style.translate = x + "px";}moveEgg();moveEgg();let x = 0; // {xpos}pxfunction moveEgg() { x++; egg.style.translate = x + "px";}moveEgg();moveEgg();moveEgg();let x = 0; // {xpos}pxfunction moveEgg() { x++; egg.style.translate = x + "px";}moveEgg();moveEgg();moveEgg();moveEgg();let x = 0; // {xpos}pxfunction moveEgg() { x++; egg.style.translate = x + "px";}moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();moveEgg();let x = 0; // {xpos}pxfunction moveEgg() { x++; egg.style.translate = x + "px";}let x = 0; // {xpos}pxfunction moveEgg() { x++; egg.style.translate = x + "px";}
while(true) { moveEgg();}let x = 0; // {xpos}pxfunction moveEgg() { x++; egg.style.translate = x + "px";}
// we want to call moveEgg() in a loop// *without* starting a firelet x = 0; // {xpos}pxsetInterval(() => { x++; egg.style.translate = x + "px";}, 1);function animate() { // do something!}requestAnimationFrame(animate);function animate() { console.log("i’ve been framed!");}requestAnimationFrame(animate);function animate() { console.log(`i’ve been framed on ${new Date()}!`); requestAnimationFrame(animate);}requestAnimationFrame(animate);function moveEgg() { requestAnimationFrame(moveEgg);}let x = 0;function moveEgg() { x = x + 1; requestAnimationFrame(moveEgg);}let x = 0;function moveEgg() { x = x + 1; egg.style.translate = x + "px"; requestAnimationFrame(moveEgg);}const PIXELS_PER_FRAME = 1;let x = 0;function moveEgg() { x = x + PIXELS_PER_FRAME; egg.style.translate = x + "px"; requestAnimationFrame(moveEgg);}const PIXELS_PER_FRAME = 1;let x = 0; // {xpos}pxfunction moveEgg() { x = x + PIXELS_PER_FRAME; egg.style.translate = x + "px"; requestAnimationFrame(moveEgg);}requestAnimationFrame(moveEgg);const PIXELS_PER_FRAME = 1;let x = 0; // {xpos}pxlet max = newHouse.offsetLeft - oldHouse.offsetLeft;function moveEgg() { x = Math.min(x + PIXELS_PER_FRAME, max); egg.style.translate = x + "px"; requestAnimationFrame(moveEgg);}requestAnimationFrame(moveEgg);const PIXELS_PER_FRAME = 1;let x = 0; // {xpos}pxlet max = newHouse.offsetLeft - oldHouse.offsetLeft;function moveEgg() { x = Math.min(x + PIXELS_PER_FRAME, max); egg.style.translate = x + "px"; if (x < max) requestAnimationFrame(moveEgg);}requestAnimationFrame(moveEgg);const PIXELS_PER_FRAME = 1;let x = 0;let max = newHouse.offsetLeft - oldHouse.offsetLeft;
function moveEgg() { x = Math.min(x + PIXELS_PER_FRAME, max); egg.style.translate = x + "px";
if (x < max) { requestAnimationFrame(moveEgg); }}requestAnimationFrame(moveEgg);


requestAnimationFrame!!






setInterval.
window.requestAnimationFrame became Baseline in mid 2015.[39] From MDN and the Mozilla Corporation. Available at https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame

window.requestAnimationFrame, the JavaScript™ function, became generally available in all browsers in mid-2015.[43]