kdf
Version:
65 lines (48 loc) • 2.07 kB
text/coffeescript
require './../../../libs/canvas-loader.js'
KDView = require './../../core/view.coffee'
module.exports = class KDLoaderView extends KDView
constructor:(options, data)->
o = options or {}
o.loaderOptions or= {}
o.size or= {}
options =
tagName : o.tagName or "span"
bind : o.bind or "mouseenter mouseleave"
showLoader : o.showLoader or no
size :
width : o.size.width or 24
height : o.size.height or 24
loaderOptions :
color : o.loaderOptions.color or "#000000" # hex color
shape : o.loaderOptions.shape or "rect" # "spiral", "oval", "square", "rect", "roundRect"
diameter : o.loaderOptions.diameter or 20 # 10 - 200
density : o.loaderOptions.density or 12 # 5 - 160
range : o.loaderOptions.range or 1 # 0.1 - 2
speed : o.loaderOptions.speed or 1 # 1 - 10
FPS : o.loaderOptions.FPS or 24 # 1 - 60
options.loaderOptions.diameter = options.size.height = options.size.width
options.cssClass = if o.cssClass then "#{o.cssClass} kdloader" else "kdloader"
super options, data
viewAppended:->
@canvas = new CanvasLoader @getElement(), id : "cl_#{@id}"
{loaderOptions, showLoader} = @getOptions()
for own option, value of loaderOptions
@canvas["set#{option.capitalize()}"] value
{height} = @getOption 'size'
@setCss 'line-height', if height then height + 'px' else 'initial'
@show() if showLoader
show:->
super
@active = yes
@canvas.show() if @canvas
hide:->
super
@active = no
@canvas.hide() if @canvas
# easter
# mouseEnter:->
# @canvas.setSpeed 2
# @canvas.setColor @utils.getRandomHex()
# mouseLeave:->
# @canvas.setColor @getOptions().loaderOptions.color
# @canvas.setSpeed @getOptions().loaderOptions.speed