38217-vm/wp-content/plugins/fusion-builder/inc/helpers/class-fusion-builder-transition-helper.php
2026-02-05 17:08:59 +03:00

123 lines
3.6 KiB
PHP

<?php
/**
* Avada Builder Transition Helper class.
*
* @package Avada-Builder
* @since 3.8
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
/**
* Avada Builder Transition Helper class.
*
* @since 3.8
*/
class Fusion_Builder_Transition_Helper {
/**
* Class constructor.
*
* @since 3.8
* @access public
*/
public function __construct() {
}
/**
* Get transition params.
*
* @since 3.8
* @param array $args The placeholder arguments.
* @return array
*/
public static function get_params( $args ) {
$selector_base = isset( $args['selector_base'] ) ? $args['selector_base'] : '';
$transition_options = [];
$transition_options[] = [
'type' => 'range',
'heading' => esc_attr__( 'Transition Duration', 'fusion-builder' ),
'description' => esc_attr__( 'Set transition duration in milliseconds.', 'fusion-builder' ),
'param_name' => 'transition_duration',
'group' => esc_attr__( 'Extras', 'fusion-builder' ),
'value' => '300',
'min' => '0',
'step' => '25',
'max' => '2000',
'callback' => [
'function' => 'fusion_update_transition_style',
'args' => [
'selector_base' => $selector_base,
],
],
];
$transition_options[] = [
'type' => 'select',
'heading' => esc_attr__( 'Transition Easing', 'fusion-builder' ),
'description' => esc_attr__( 'Select transition easing.', 'fusion-builder' ),
'param_name' => 'transition_easing',
'group' => esc_attr__( 'Extras', 'fusion-builder' ),
'default' => 'ease',
'value' => [
'ease' => esc_attr__( 'Ease', 'fusion-builder' ),
'ease-in' => esc_attr__( 'Ease In', 'fusion-builder' ),
'ease-out' => esc_attr__( 'Ease Out', 'fusion-builder' ),
'ease-in-out' => esc_attr__( 'Ease In Out', 'fusion-builder' ),
'linear' => esc_attr__( 'Linear', 'fusion-builder' ),
'custom' => esc_attr__( 'Custom', 'fusion-builder' ),
],
'callback' => [
'function' => 'fusion_update_transition_style',
'args' => [
'selector_base' => $selector_base,
],
],
];
$transition_options[] = [
'type' => 'textfield',
'heading' => esc_attr__( 'Transition Custom Easing', 'fusion-builder' ),
/* translators: %s - The URL. */
'description' => sprintf( __( 'Set transition custom easing, use <a href="%s" target="_blank">this website</a> to create custom easing.', 'fusion-builder' ), 'https://cubic-bezier.com/' ),
'param_name' => 'transition_custom_easing',
'group' => esc_attr__( 'Extras', 'fusion-builder' ),
'callback' => [
'function' => 'fusion_update_transition_style',
'args' => [
'selector_base' => $selector_base,
],
],
'dependency' => [
[
'element' => 'transition_easing',
'value' => 'custom',
'operator' => '==',
],
],
];
return $transition_options;
}
/**
* Get transition styles.
*
* @since 3.8
* @param array $atts The transition parameters.
* @return string
*/
public static function get_transition_styles( $atts ) {
$transition_duration = $atts['transition_duration'] . 'ms';
$transition_easing = 'custom' === $atts['transition_easing'] ? $atts['transition_custom_easing'] : $atts['transition_easing'];
$transition_style = 'filter ' . $transition_duration . ' ' . $transition_easing . ', transform ' . $transition_duration . ' ' . $transition_easing . ', background-color ' . $transition_duration . ' ' . $transition_easing . ', border-color ' . $transition_duration . ' ' . $transition_easing;
return $transition_style;
}
}