samuelsuteras
Épsilon
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Esta es la solucionJavaScript:jQuery( document ).ready(function(){ var current = 0; var backgrounds = jQuery('.hero-section').data('images'); function nextBackground(){ current = (current + 1); jQuery('.hero-section').css('background-image', 'url('+backgrounds[current]+')'); if(current >= backgrounds.length){ current = 0; } setTimeout(nextBackground, 1000); } setTimeout(nextBackground, 1000); jQuery('.hero-section').css('background-image', 'url('+backgrounds[0]+')'); });
La diferencia:Esta es la solucion
Esta es la solucion
Pero ahora si ingresas en la pagina hay una imagen que se queda en blanco, como si el valor estuviese vacio, super extrañoLa diferencia:
- url(algo) hace la decodificación en el navegador (js)
- urlencode y urldecode hace la decodificación en el servidor. (php)
Eso es a nivel de javascript.... fuera de mi expertiseHay un valor que pasa como undefined
<section class="hero-section" data-images="<?php echo htmlspecialchars(json_encode($imagesar), ENT_QUOTES, 'UTF-8'); ?>" style="background-image: url('<?php echo urlencode(json_encode($imagesar)); ?>')">
<div class="container-fluid">
<div class="banner-overlay-div"></div>
<div class="col-12 col-md-6 hero-text">
<h1><?php echo get_field('hero_title') ?></h1>
<p><?php echo get_field('hero_desc') ?></p>
<a href="<?php echo get_field('hero_link') ?>"><button><?php echo get_field('hero_button') ?></button></a>
</div>
<div class="col-12 col-md-6"></div>
</div>
<?php get_template_part( 'template-parts/wave' ); ?>
</section>
jQuery( document ).ready(function(){
var current = 0;
var backgrounds = jQuery('.hero-section').data('images');
function nextBackground(){
current = (current + 1);
jQuery('.hero-section').css('background-image', 'url('+backgrounds[current]+')');
if(current >= backgrounds.length){
current = 0;
}
setTimeout(nextBackground, 5000);
}
setTimeout(nextBackground, 5000);
jQuery('.hero-section').css('background-image', 'url('+backgrounds[0]+')');
});
Esta es la solucion
Listo, pero sigue dandome error no entiendo porque, como si un valor no fuese correctoIgual estás llamando 2 veces el setTimeout.
Debes dejar solo el que está fuera de la función.
Prueba con uno de estos dos.Listo, pero sigue dandome error no entiendo porque, como si un valor no fuese correcto
if(current == backgrounds.length){
current = 0;
}
if(current > backgrounds.length){
current = 0;
}
jQuery( document ).ready(function(){
var current = 0;
var backgrounds = jQuery('.hero-section').data('images');
function nextBackground(){
current = (current + 1);
jQuery('.hero-section').css('background-image', 'url('+backgrounds[current]+')');
if(current > backgrounds.length){
current = 0;
}
}
setTimeout(nextBackground, 2000);
jQuery('.hero-section').css('background-image', 'url('+backgrounds[0]+')');
});
jQuery( document ).ready(function(){
var current = 0;
var backgrounds = jQuery('.hero-section').data('images');
jQuery('.hero-section').css('background-image', 'url('+backgrounds[0]+')');
setInterval(function(){
current = (current + 1);
if(current >= backgrounds.length){
current = 0;
}
jQuery('.hero-section').css('background-image', 'url('+backgrounds[current]+')');
}, 5000);
});
o usas url_encode(...) y url_decode(...) en el PHP o url(...) en el jquery... si haces ambos... decodificas dos veces.Lo que dijo el compañero @fabgonber den urldecode, si lo hago me deja de funcionar todo, no se porque
A ver es que esto de php no es lo mio.o usas url_encode(...) y url_decode(...) en el PHP o url(...) en el jquery... si haces ambos... decodificas dos veces.
<div class="content-area">
<main>
<?php $imagesar = array();
array_push($imagesar,get_field('hero_img'));
array_push($imagesar,get_field('hero_img_2'));
array_push($imagesar,get_field('hero_img_3'));
var_dump($imagesar);
?>
<section class="hero-section" data-images="<?php echo htmlspecialchars(json_encode($imagesar), ENT_QUOTES, 'UTF-8') ?>" style="background-image: url('<?php echo urldecode(json_encode($imagesar), ENT_QUOTES, 'UTF-8') ?>')">
A ver es que esto de php no es lo mio.
Te paso codigo a ver si entendi
PHP:<div class="content-area"> <main> <?php $imagesar = array(); array_push($imagesar,[B]urlencode[/B](get_field('hero_img')))); array_push($imagesar,[B]urlencode([/B]get_field('hero_img_2'))); array_push($imagesar,[B]urlencode([/B]get_field('hero_img_3'))); var_dump($imagesar); ?> <section class="hero-section" data-images="<?php echo [B]urldecode[/B](json_encode($imagesar), ENT_QUOTES, 'UTF-8') ?>" style="background-image: url('<?php echo urldecode(json_encode($imagesar), ENT_QUOTES, 'UTF-8') ?>')">
htmlspecialchars modifica muchos mas caracteres que urlencodeSi yo hago el urldecode que diferencia hay con el de htmlspecialchars?
<section class="hero-section" data-images="<?php echo htmlspecialchars(json_encode($imagesar), ENT_QUOTES, 'UTF-8') ?>"
style="background-image: url('<?php echo $imagesar[0]; ?>')">
jQuery( document ).ready(function(){
var current = 0;
var backgrounds = jQuery('.hero-section').data('images');
jQuery('.hero-section').css('background-image', 'url('+backgrounds[0]+')');
setInterval(function(){
current = (current + 1);
if(current >= backgrounds.length){
current = 0;
}
jQuery('.hero-section').css('background-image', 'url('+backgrounds[current]+')');
}, 5000);
});
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?