PluginProbe
Elementor Website Builder – more than just a page builder / 3.6.0-dev1
Elementor Website Builder – more than just a page builder v3.6.0-dev1
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / includes / controls / hover-animation.php

hover-animation.php in Elementor Website Builder – more than just a page builder 3.6.0-dev1, at includes/controls/hover-animation.php

165 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit; // Exit if accessed directly.
6 }
7
8 /**
9 * Elementor hover animation control.
10 *
11 * A base control for creating hover animation control. Displays a select box
12 * with the available hover animation effects @see Control_Hover_Animation::get_animations()
13 *
14 * @since 1.0.0
15 */
16 class Control_Hover_Animation extends Base_Data_Control {
17
18 /**
19 * Animations.
20 *
21 * Holds all the available hover animation effects of the control.
22 *
23 * @access private
24 * @static
25 *
26 * @var array
27 */
28 private static $_animations;
29
30 /**
31 * Get hover animation control type.
32 *
33 * Retrieve the control type, in this case `hover_animation`.
34 *
35 * @since 1.0.0
36 * @access public
37 *
38 * @return string Control type.
39 */
40 public function get_type() {
41 return 'hover_animation';
42 }
43
44 /**
45 * Get animations.
46 *
47 * Retrieve the available hover animation effects.
48 *
49 * @since 1.0.0
50 * @access public
51 * @static
52 *
53 * @return array Available hover animation.
54 */
55 public static function get_animations() {
56 if ( is_null( self::$_animations ) ) {
57 self::$_animations = [
58 'grow' => 'Grow',
59 'shrink' => 'Shrink',
60 'pulse' => 'Pulse',
61 'pulse-grow' => 'Pulse Grow',
62 'pulse-shrink' => 'Pulse Shrink',
63 'push' => 'Push',
64 'pop' => 'Pop',
65 'bounce-in' => 'Bounce In',
66 'bounce-out' => 'Bounce Out',
67 'rotate' => 'Rotate',
68 'grow-rotate' => 'Grow Rotate',
69 'float' => 'Float',
70 'sink' => 'Sink',
71 'bob' => 'Bob',
72 'hang' => 'Hang',
73 'skew' => 'Skew',
74 'skew-forward' => 'Skew Forward',
75 'skew-backward' => 'Skew Backward',
76 'wobble-vertical' => 'Wobble Vertical',
77 'wobble-horizontal' => 'Wobble Horizontal',
78 'wobble-to-bottom-right' => 'Wobble To Bottom Right',
79 'wobble-to-top-right' => 'Wobble To Top Right',
80 'wobble-top' => 'Wobble Top',
81 'wobble-bottom' => 'Wobble Bottom',
82 'wobble-skew' => 'Wobble Skew',
83 'buzz' => 'Buzz',
84 'buzz-out' => 'Buzz Out',
85 ];
86
87 $additional_animations = [];
88
89 /**
90 * Hover animations.
91 *
92 * Filters the animations list displayed in the hover animations control.
93 *
94 * This hook can be used to register new animations in addition to the
95 * basic Elementor hover animations.
96 *
97 * @since 2.4.0
98 *
99 * @param array $additional_animations Additional animations array.
100 */
101 $additional_animations = apply_filters( 'elementor/controls/hover_animations/additional_animations', $additional_animations );
102
103 self::$_animations = array_merge( self::$_animations, $additional_animations );
104 }
105
106 return self::$_animations;
107 }
108
109 /**
110 * Render hover animation control output in the editor.
111 *
112 * Used to generate the control HTML in the editor using Underscore JS
113 * template. The variables for the class are available using `data` JS
114 * object.
115 *
116 * @since 1.0.0
117 * @access public
118 */
119 public function content_template() {
120 ?>
121 <div class="elementor-control-field">
122 <label for="<?php $this->print_control_uid(); ?>" class="elementor-control-title">{{{ data.label }}}</label>
123 <div class="elementor-control-input-wrapper">
124 <select id="<?php $this->print_control_uid(); ?>" data-setting="{{ data.name }}">
125 <option value=""><?php echo esc_html__( 'None', 'elementor' ); ?></option>
126 <?php foreach ( self::get_animations() as $animation_name => $animation_title ) : ?>
127 <option value="<?php Utils::print_unescaped_internal_string( $animation_name ); ?>"><?php Utils::print_unescaped_internal_string( $animation_title ); ?></option>
128 <?php endforeach; ?>
129 </select>
130 </div>
131 </div>
132 <# if ( data.description ) { #>
133 <div class="elementor-control-field-description">{{{ data.description }}}</div>
134 <# } #>
135 <?php
136 }
137
138 /**
139 * Get hover animation control default settings.
140 *
141 * Retrieve the default settings of the hover animation control. Used to return
142 * the default settings while initializing the hover animation control.
143 *
144 * @since 1.0.0
145 * @access protected
146 *
147 * @return array Control default settings.
148 */
149 protected function get_default_settings() {
150 return [
151 'label_block' => true,
152 ];
153 }
154
155 public static function get_assets( $setting ) {
156 if ( ! $setting || 'none' === $setting ) {
157 return [];
158 }
159
160 return [
161 'styles' => [ 'e-animations' ],
162 ];
163 }
164 }
165