Class: Flms::LayerViewObject
- Inherits:
-
Object
- Object
- Flms::LayerViewObject
- Defined in:
- app/view_objects/flms/layer_view_object.rb
Overview
Create DOM for this layer, including all the necessary ‘data-*’ attributes to animate it as desired via skrollr.
Direct Known Subclasses
AnimationLayerViewObject, EmbedLayerViewObject, ImageLayerViewObject, ParagraphLayerViewObject, TextLayerViewObject
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(layer) ⇒ LayerViewObject
constructor
A new instance of LayerViewObject.
-
#keyframe_data_hash(scroll_offset = 0) ⇒ Object
Generate a hash of data to be provided to skrollr that describes the keyframe animation for this layer.
- #view_partial_name ⇒ Object
Constructor Details
#initialize(layer) ⇒ LayerViewObject
Returns a new instance of LayerViewObject.
7 8 9 |
# File 'app/view_objects/flms/layer_view_object.rb', line 7 def initialize(layer) @layer = layer end |
Class Method Details
.link_path_for(block, layer) ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'app/view_objects/flms/layer_view_object.rb', line 15 def self.link_path_for(block, layer) link_path = Flms::Engine.routes.url_helpers.edit_block_image_layer_path(block, layer) if layer.is_a? Flms::ImageLayer link_path = Flms::Engine.routes.url_helpers.edit_block_text_layer_path(block, layer) if layer.is_a? Flms::TextLayer link_path = Flms::Engine.routes.url_helpers.edit_block_paragraph_layer_path(block, layer) if layer.is_a? Flms::ParagraphLayer link_path = Flms::Engine.routes.url_helpers.(block, layer) if layer.is_a? Flms::EmbedLayer link_path = Flms::Engine.routes.url_helpers.edit_block_animation_layer_path(block, layer) if layer.is_a? Flms::AnimationLayer link_path end |
Instance Method Details
#keyframe_data_hash(scroll_offset = 0) ⇒ Object
Generate a hash of data to be provided to skrollr that describes the keyframe animation for this layer
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'app/view_objects/flms/layer_view_object.rb', line 25 def keyframe_data_hash(scroll_offset = 0) data = { } data['data-anchor-target'] = '#skrollr-body' data[:style] = "z-index: #{ @layer.z_index };" initial_pos = calculate_scroll_position(:initial, scroll_offset) target_start_pos = calculate_scroll_position(:target_start, scroll_offset) target_end_pos = calculate_scroll_position(:target_end, scroll_offset) final_pos = calculate_scroll_position(:final, scroll_offset) start_view_object = Flms::KeyframeViewObject.new(@layer.start_state_keyframe) target_view_object = Flms::KeyframeViewObject.new(@layer.target_state_keyframe) end_view_object = Flms::KeyframeViewObject.new(@layer.end_state_keyframe) data['data-0'] = 'display:none;' data["data-#{initial_pos}"] = 'display:block; ' + start_view_object.styles(style_data_for_keyframes) data["data-#{target_start_pos}"] = target_view_object.styles(style_data_for_keyframes) data["data-#{target_end_pos}"] = target_view_object.styles(style_data_for_keyframes) data["data-#{final_pos}"] = end_view_object.styles(style_data_for_keyframes) data["data-#{final_pos + 1}"] = 'display:none; opacity: 0;' if @layer.dom_remove data end |
#view_partial_name ⇒ Object
11 12 13 |
# File 'app/view_objects/flms/layer_view_object.rb', line 11 def view_partial_name "flms/elements/#{ @layer.class.name.demodulize.underscore }" end |