Cet article porte sur le réglage de la vitesse de défilement d’un slider “flexslider”. Il est possible qu’il ne fonctionne pas avec des thèmes différents du mien. 

La situation

Un slider “flexslider” est intégré à ma page d’accueil par les moyens suivants.

Le code html sur le template de la page d’accueil (ac-front-page-template.php) :

	<section id="page-slider" class="clair">	
	<?php
	// generated with http://generatewp.com/wp_query/
	$args = array (
	'post_type'              => array( 'page' ),
	'order'                  => 'ASC',
	'orderby'                => 'menu_order',
	'meta_query'             => array(
		array(
			'key'       => 'inclure-slider-accueil',
			'value'     => 'yes',
			'compare'   => '=',
		),
	),
);
	
	$page_slider = new WP_Query( $args );
 ?>

 
	<?php if ( $page_slider->have_posts() ) : ?>
		<div class="flexslider">
			<div class="slides">

			<?php while ( $page_slider->have_posts() ) : $page_slider->the_post(); $do_not_duplicate[] = get_the_ID(); 
			$link_value = get_permalink() ;
			?>
				<figure class="slide">
				<a href="<?php echo $link_value ?>">
				<?php 					
					the_post_thumbnail( 'unique-slider', array( 	
						'class' => 'clea-ac-slider', 
						'alt'   => 'the alt here' ,
						'title' => get_the_title() 
					) ) ; ?>

					<figcaption class="slide-caption">

						<?php the_title( '<h2 class="entry-title">', '</h2>' ); ?>

						<div class="entry-summary">
							<?php the_excerpt(); ?>
						</div><!-- .entry-summary -->
						<div class="bouton-caption">
						<a href="<?php echo $link_value ?>" class="bouton-savoir" target="_self"><i class="fa fa-share"></i>Voir la suite</a>
						</div>
					</figcaption><!-- .slide-caption -->
				</a>
				</figure><!-- .slide -->

			<?php endwhile; ?>

			</div><!-- .slides -->

		</div><!-- .flexslider -->

et functions.php du thème enfant charge flexslider.css et flexslider.js pour la page d’accueil :

<?php 

/* Register and load scripts. */
add_action( 'wp_enqueue_scripts', 'clea_atout_c_enqueue_scripts' );

/* Register and load styles. */
add_action( 'wp_enqueue_scripts', 'clea_atout_c_enqueue_styles', 4 ); 

function clea_atout_c_enqueue_styles() {

	if ( is_page_template( 'page/ac-front-page-template.php' ) ) {
		wp_enqueue_style( 'flexslider', get_template_directory_uri() . '/css/flexslider.css' , array( '25px' ) );
	}
}
	
function clea_atout_c_enqueue_scripts() {

	/* Enqueue the 'flexslider' script. */
	if ( is_page_template( 'page/ac-front-page-template.php' ) ) {
		wp_enqueue_script( 'flexslider', get_template_directory_uri() . '/js/flexslider/flexslider.min.js' , array( 'jquery' ), '20120713', true );
	}
}
?>

Le problème

Le code javascript de flexslider fixe la vitesse de défilement par défaut à 7000. Dans mon cas, comme il y a du texte à lire, c’est un peu trop rapide.

Les sources d’information utilisées :

Il faut donc que je parviennes à “dire” que mon slider doit défiler plus lentement, en utilisant slideshowSpeed: “8000”,  par exemple, au lieu des 7000 par défaut.

La solution

Inspirée de https://github.com/woothemes/FlexSlider/issues/112 :

  • attribuer une classe supplémentaire à mon flexslider en modifiant la ligne <div class=”flexslider”>  en <div class=”flexslider temporise”> , dans le template ac-front-page-template.php.
  • ajouter un script jquery spécifique à un slider de classe “temporise” (script ajouté dans le template  ac-front-page-template.php  :
<script>
jQuery(".temporise").fadeIn('fast',
    function(){                     
		//Set up the slideshow
		jQuery('.flexslider').flexslider({
			slideshowSpeed: "8500",  
			directionNav: true, 
			slideToStart: 0,
			animation: "fade",
			start: function(slider) {
				 slider.flexAnimate(0);
			}
		});
	});

</script>

Et voilà, le slider défile plus lentement !

 

 

 

 

 

 

0 0 vote
Article Rating
0
Would love your thoughts, please comment.x
()
x