Sha256: a68c291f411b5b63e02e2bc44f4acef521b7a8bc5593344a4a8b3b38e4cf2222
Contents?: true
Size: 1.13 KB
Versions: 6
Compression:
Stored size: 1.13 KB
Contents
module Browser; class Window class View def initialize(window) @window = window @native = window.to_n end if Browser.supports? 'Window.innerSize' def width `#@native.innerWidth` end def height `#@native.innerHeight` end elsif Browser.supports? 'Element.clientSize' def height `#@native.document.documentElement.clientHeight` end def width `#@native.document.documentElement.clientWidth` end else def width raise NotImplementedError, 'window size unsupported' end def height raise NotImplementedError, 'window size unsupported' end end # Get a device pixel ratio. Can be used to handle desktop browser # zoom, retina devices and custom screen scale for mobile devices. # Use $window.visual_viewport.scale to handle mobile zoom. def zoom `#@native.devicePixelRatio` end # Handle #pixel_ratio changes. This will trigger a block on zoom. def on_zoom &block %x{ var mqString = "(resolution: " + #@native.devicePixelRatio + "dppx)"; #@native.matchMedia(mqString).addListener(#{block.to_n}); } end end end; end
Version data entries
6 entries across 6 versions & 2 rubygems