<?php namespace Elementor; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Elementor hover animation control. * * A base control for creating hover animation control. Displays a select box * with the available hover animation effects @see Control_Hover_Animation::get_animations() * * @since 1.0.0 */ class Control_Hover_Animation extends Base_Data_Control { /** * Animations. * * Holds all the available hover animation effects of the control. * * @access private * @static * * @var array */ protected static $_animations; /** * Get hover animation control type. * * Retrieve the control type, in this case `hover_animation`. * * @since 1.0.0 * @access public * * @return string Control type. */ public function get_type() { return 'hover_animation'; } /** * Get animations. * * Retrieve the available hover animation effects. * * @since 1.0.0 * @access public * @static * * @return array Available hover animation. */ public static function get_animations() { if ( is_null( self::$_animations ) ) { self::$_animations = self::get_default_animations(); $additional_animations = []; /** * Hover animations. * * Filters the animations list displayed in the hover animations control. * * This hook can be used to register new animations in addition to the * basic Elementor hover animations. * * @since 2.4.0 * * @param array $additional_animations Additional animations array. */ $additional_animations = apply_filters( 'elementor/controls/hover_animations/additional_animations', $additional_animations ); self::$_animations = array_merge( self::$_animations, $additional_animations ); } return self::$_animations; } public static function get_default_animations(): array { return [ 'grow' => 'Grow', 'shrink' => 'Shrink', 'pulse' => 'Pulse', 'pulse-grow' => 'Pulse Grow', 'pulse-shrink' => 'Pulse Shrink', 'push' => 'Push', 'pop' => 'Pop', 'bounce-in' => 'Bounce In', 'bounce-out' => 'Bounce Out', 'rotate' => 'Rotate', 'grow-rotate' => 'Grow Rotate', 'float' => 'Float', 'sink' => 'Sink', 'bob' => 'Bob', 'hang' => 'Hang', 'skew' => 'Skew', 'skew-forward' => 'Skew Forward', 'skew-backward' => 'Skew Backward', 'wobble-vertical' => 'Wobble Vertical', 'wobble-horizontal' => 'Wobble Horizontal', 'wobble-to-bottom-right' => 'Wobble To Bottom Right', 'wobble-to-top-right' => 'Wobble To Top Right', 'wobble-top' => 'Wobble Top', 'wobble-bottom' => 'Wobble Bottom', 'wobble-skew' => 'Wobble Skew', 'buzz' => 'Buzz', 'buzz-out' => 'Buzz Out', ]; } /** * Render hover animation control output in the editor. * * Used to generate the control HTML in the editor using Underscore JS * template. The variables for the class are available using `data` JS * object. * * @since 1.0.0 * @access public */ public function content_template() { ?> <div class="elementor-control-field"> <label for="<?php $this->print_control_uid(); ?>" class="elementor-control-title">{{{ data.label }}}</label> <div class="elementor-control-input-wrapper"> <select id="<?php $this->print_control_uid(); ?>" data-setting="{{ data.name }}"> <option value=""><?php echo esc_html__( 'None', 'elementor' ); ?></option> <?php foreach ( static::get_animations() as $animation_name => $animation_title ) : ?> <option value="<?php Utils::print_unescaped_internal_string( $animation_name ); ?>"><?php Utils::print_unescaped_internal_string( $animation_title ); ?></option> <?php endforeach; ?> </select> </div> </div> <# if ( data.description ) { #> <div class="elementor-control-field-description">{{{ data.description }}}</div> <# } #> <?php } /** * Get hover animation control default settings. * * Retrieve the default settings of the hover animation control. Used to return * the default settings while initializing the hover animation control. * * @since 1.0.0 * @access protected * * @return array Control default settings. */ protected function get_default_settings() { return [ 'label_block' => true, ]; } public static function get_assets( $setting ) { if ( ! $setting || 'none' === $setting ) { return []; } return [ 'styles' => [ 'e-animation-' . $setting ], ]; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
groups | Folder | 0755 |
|
|
alert.php | File | 1.79 KB | 0644 |
|
animation.php | File | 4.76 KB | 0644 |
|
base-data.php | File | 3.66 KB | 0644 |
|
base-icon-font.php | File | 628 B | 0644 |
|
base-multiple.php | File | 2.03 KB | 0644 |
|
base-ui.php | File | 516 B | 0644 |
|
base-units.php | File | 3.5 KB | 0644 |
|
base.php | File | 3.08 KB | 0644 |
|
box-shadow.php | File | 3.39 KB | 0644 |
|
button.php | File | 1.68 KB | 0644 |
|
choose.php | File | 2.21 KB | 0644 |
|
code.php | File | 1.99 KB | 0644 |
|
color.php | File | 2.04 KB | 0644 |
|
date-time.php | File | 2.04 KB | 0644 |
|
deprecated-notice.php | File | 2.27 KB | 0644 |
|
dimensions.php | File | 4.94 KB | 0644 |
|
divider.php | File | 829 B | 0644 |
|
exit-animation.php | File | 2.54 KB | 0644 |
|
font.php | File | 2.22 KB | 0644 |
|
gallery.php | File | 5.15 KB | 0644 |
|
gaps.php | File | 1.62 KB | 0644 |
|
heading.php | File | 1.32 KB | 0644 |
|
hidden.php | File | 948 B | 0644 |
|
hover-animation.php | File | 4.32 KB | 0644 |
|
icon.php | File | 31.33 KB | 0644 |
|
icons.php | File | 7.67 KB | 0644 |
|
image-dimensions.php | File | 3.71 KB | 0644 |
|
media.php | File | 12.82 KB | 0644 |
|
notice.php | File | 4.07 KB | 0644 |
|
number.php | File | 2.09 KB | 0644 |
|
popover-toggle.php | File | 2.66 KB | 0644 |
|
raw-html.php | File | 1.48 KB | 0644 |
|
repeater.php | File | 4.94 KB | 0644 |
|
section.php | File | 1.32 KB | 0644 |
|
select.php | File | 2.56 KB | 0644 |
|
select2.php | File | 2.72 KB | 0644 |
|
slider.php | File | 3.49 KB | 0644 |
|
structure.php | File | 2.46 KB | 0644 |
|
switcher.php | File | 2.08 KB | 0644 |
|
tab.php | File | 1.01 KB | 0644 |
|
tabs.php | File | 944 B | 0644 |
|
text-shadow.php | File | 3.13 KB | 0644 |
|
text.php | File | 2.1 KB | 0644 |
|
textarea.php | File | 2.01 KB | 0644 |
|
url.php | File | 5.09 KB | 0644 |
|
wp-widget.php | File | 1.35 KB | 0644 |
|
wysiwyg.php | File | 1.73 KB | 0644 |
|