div { background: conic-gradient(red, yellow, lime, aqua, blue, magenta, red); border-radius: 50% }
margin
padding
border
margin-{block,inline}-{start,end}
padding-{block,inline}-{start,end}
border-{block,inline}-{start,end}-{width,style,color}
-webkit
border-{block,inline}-{start,end}
#gallery { scroll-snap-type: x mandatory; overflow-x: scroll; display: flex; } #gallery img { scroll-snap-align: center; }
env()
viewport-fit
viewport
cover
<meta name="viewport" content="viewport-fit: cover" /> <style> #box { margin-top: env(safe-area-inset-top); margin-left: env(safe-area-inset-left); margin-bottom: env(safe-area-inset-bottom); margin-right: env(safe-area-inset-right); } </style> <div id=box></div>
DedicatedWorker.requestAnimationFrame()
const offscreenCanvas = new OffscreenCanvas(100, 100); const ctx = offscreenCanvas.getContext("2d"); ctx.fillRect(0, 0, 10, 10);
const canvasElement = document.getElementById("mycanvas") const offscreenCanvas = canvasElement.transferControlToOffscreen(); const ctx = offscreenCanvas.getContext("2d"); ctx.fillRect(0, 0, 10, 10);
self.onmessage = function(ev) { const offscreenCanvas = ev.data; const ctx = offscreenCanvas.getContext("2d"); let x = 0; const draw = function() { ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); ctx.fillRect(x, 0, 10, 10); x = (x + 1) % ctx.canvas.width; requestAnimationFrame(draw); }; draw(0); }
const worker = new Worker("worker.js"); const offscreenCanvas = document.getElementById("canvas").transferControlToOffscreen(); worker.postMessage(offscreenCanvas, [offscreenCanvas]);
Element.toggleAttribute()
Element.classList.toggle
Element.setAttribute()
Array.prototype.flat()
Array.prototype.flatMap()
flat()
KeyboardEvent.code
rtt
downlink
ect
navigator.connection.rtt
navigator.connection.downlink
navigator.connection.effectiveType
ServiceWorkerRegistration.update()
navigator.serviceWorker
SecurityError
my_net_sync
my_resource
await navigator.locks.request('my_resource', async lock => { const url = await look_up_in_database(); const response = await fetch(url); const body = await response.text(); await store_body_in_database(body); });
RTCRtpParameters.headerExtensions
RTCRtpSender.getParameters()
PeerConnection
RTCRtpSender
RTCRtpReceiver
getCapabilities()
HTMLMediaElement.stalled
stalled
document.createTouchList()
Touch()
window.confirm()
false
beforeinstallprompt
prompt()
let installPromptEvent; window.addEventListener('beforeinstallprompt', (event) => { // Prevent Chrome <= 67 from automatically showing the prompt event.preventDefault(); // Stash the event so it can be triggered later. installPromptEvent = event; // Update UI notify the user they can add to home screen document.querySelector('#install-button').disabled = false; });
beforeinstallpromptevent
const request = new PaymentRequest([{ // Your custom payment method identifier comes here supportedMethods: 'https://bobpay.xyz/pay' }], { total: { label: 'total', amount: { value: '10', currency: 'USD' } } });
sandbox
iframe
freeze
resume
document.wasDiscarded
chrome://discards
overflow
overflow-x
overflow-y
object-position
perspective-origin
"top right 20%"
'x'
'dppx'
Gamepad.timestamp
DOMHighResTimeStamp
PerformanceTiming.navigationStart
innerHTML
Cmd-Tab
Alt-Tab
Esc
PointerEvents
fromElement
toElement
MouseEvent
PointerEvent
target
relatedTarget
TouchEvent
navigator.vibrate()
AudioParam.automationRate
AudioParam
BiquadFilterNode
importScripts
ServiceWorkerRegistration.updateViaCache
brightness()
document.createTouch()
Document.selectedStylesheetSet
Document.preferredStylesheetSet