OSDN Git Service

fix element opacity
[pettanr/pettanr.git] / app / assets / javascripts / views / panel_pictures / element.js.coffee
1 class Pettanr.Views.PanelPicture.Element extends Backbone.View\r
2   tagName: 'div'\r
3   className: 'pettanr-panel-picture-wrapper'\r
4   \r
5   initialize: (options) ->\r
6     @element = options.element\r
7     @root = options.root\r
8     @spot = options.spot\r
9   \r
10   render: () ->\r
11     @attr = {style: Pettanr.to_style(@opt_div_style())}\r
12     this.$el.attr(@attr)\r
13     @picture = @element.picture()\r
14     _this = this\r
15     @picture.fetch({cache: true}).done ->\r
16       _this.img = new Tag.Img({\r
17         attr: _this.opt_img_tag(_this.spot)\r
18       })\r
19       _this.$el.html(_this.img.render().el)\r
20     this\r
21   \r
22   opt_div_style: () ->\r
23     {\r
24       'top': Pettanr.to_s(@element.get('y')) + 'px',\r
25       'left': Pettanr.to_s(@element.get('x')) + 'px',\r
26       'z-index': @element.get('z'),\r
27       'position': 'absolute'\r
28     }\r
29   \r
30   opt_img_tag: (spot = null, opacity = 20) ->\r
31     style = {}\r
32     if spot and spot.constructor == @element.constructor and spot.get('id') != @element.get('id')\r
33       @element.merge_opacity(style, opacity)\r
34     {\r
35       vPicture: @element.get('id'), \r
36       src: @element.r_url(@picture), \r
37       width: Pettanr.to_s(Math.abs(@element.get('width'))) + 'px', \r
38       height: Pettanr.to_s(Math.abs(@element.get('height'))) + 'px', \r
39       alt: @element.get('caption'), \r
40       style: Pettanr.to_style(style)\r
41     }\r
42   \r