ldx-widgets
Version:
widgets
67 lines (50 loc) • 1.64 kB
text/coffeescript
{Flux} = require 'delorean'
_ = require 'lodash'
Global = Flux.createStore
actions:
'user-logout': 'resetState'
'calculate-scollbar-width': 'calculateScrollBarWidth'
scheme:
activeRequests:
default: {}
requestActive:
default: no
ie:
default: no
ie9:
default: no
scrollBarWidth:
default: 0
initialize: ->
@detectBrowser()
detectBrowser: ->
ua = navigator.userAgent.toLowerCase()
if navigator.appName is 'Microsoft Internet Explorer'
@set 'ie', yes
ieVersion = parseInt(ua.match(/msie.([0-9]+)/)[1])
if ieVersion is 9 then @set 'ie9', yes
else if navigator.appName is 'Netscape' and new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) != null
@set 'ie', yes
calculateScrollBarWidth: ->
outer = document.createElement('div')
outer.style.overflow = 'scroll'
outer.style.height = '500px'
outer.style.width = '500px'
outer.style.position = 'absolute'
outer.style.top = '100px'
outer.style.left = '100px'
inner1 = document.createElement('div')
inner1.style.position = 'absolute'
inner1.style.height = '100%'
inner1.style.width = '100%'
inner2 = document.createElement('div')
inner2.style.height = '600px'
inner2.style.width = '600px'
outer.appendChild inner1
outer.appendChild inner2
document.body.appendChild outer
scrollBarWidth = outer.offsetHeight - inner1.offsetHeight
document.body.removeChild outer
@set 'scrollBarWidth', scrollBarWidth
module.exports = Global