UNPKG

accessibility-developer-tools

Version:

This is a library of accessibility-related testing and utility code.

145 lines (120 loc) 2.86 kB
<!DOCTYPE html> <html> <!-- Copyright 2014 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <title>goog.events.WheelHandler</title> <link rel="stylesheet" href="../css/checkbox.css"> <style> #out { background-color: #eee; width: 500px; height: 500px; position: relative; display: inline-block; } #h-line, #v-line { position: absolute; background: black; } #h-line { width: 20px; height: 1px; } #v-line { width: 1px; height: 20px; } #status { position: absolute; bottom: 0; right: 0; font: 70% sans-serif; } #debug { font-family: monospace; white-space: pre; display: inline-block; } </style> <script src="../base.js"></script> <script> goog.require('goog.events'); goog.require('goog.events.WheelHandler'); </script> </head> <body> <h1>goog.events.WheelHandler</h1> <p>Use your mousewheel on the gray box below to move the cross hair. <div id=out> <div id=h-line></div> <div id=v-line></div> <div id=status></div> </div> <div id=debug> </div> <script> var WheelHandler = goog.events.WheelHandler; var WHEEL = WheelHandler.EventType.WHEEL; function $(id) { return document.getElementById(id) } var x = 250, y = 250; var out = $('out'); var hLine= $('h-line'); var vLine = $('v-line'); var statusLine = $('status'); var debug = $('debug'); var availWidth = out.clientWidth - vLine.offsetWidth; var availHeight = out.clientHeight - hLine.offsetHeight; function handleWheel(e) { x += e.pixelDeltaX; x = Math.max(0, Math.min(availWidth, x)); y += e.pixelDeltaY; y = Math.max(0, Math.min(availHeight, y)); updateLines(); e.preventDefault(); var deltaModeString = 'unknown'; var DeltaMode = goog.events.WheelHandler.DeltaMode; switch (e.deltaMode) { case DeltaMode.PIXEL: deltaModeString = 'DeltaMode.PIXEL'; break; case DeltaMode.LINE: deltaModeString = 'DeltaMode.LINE'; break; case DeltaMode.PAGE: deltaModeString = 'DeltaMode.PAGE'; break; } var debugObject = { type: e.type, deltaMode: deltaModeString, deltaX: e.deltaX, deltaY: e.deltaY, deltaZ: e.deltaZ, pixelDeltaX: e.pixelDeltaX, pixelDeltaY: e.pixelDeltaY, pixelDeltaZ: e.pixelDeltaZ, }; debug.innerText = JSON.stringify(debugObject, undefined, 4); } function updateLines() { vLine.style.left = x + 'px'; hLine.style.left = x - hLine.offsetWidth / 2 + 'px'; hLine.style.top = y + 'px'; vLine.style.top = y - vLine.offsetHeight / 2 + 'px'; statusLine.innerText = x + ', ' + y; } updateLines(); var mwh = new WheelHandler(out); goog.events.listen(mwh, WHEEL, handleWheel); goog.events.listen(window, 'unload', function(e) { goog.events.unlisten(mwh, WHEEL, handleWheel); }); </script> </body> </html>