Mettre une variable smarty (url relative d'image) en background?

Fermé
mandrake - Modifié par mandrake le 8/06/2014 à 18:23
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 - 14 juin 2014 à 02:35
Bonjour,

Je vous explique mon problème, je suis en train de refaire le design d'un module de xoops pour mon site web et je souhaite afficher des images styllé avec du css3.

j'utilise un code javascript qui me met les images en background dynamiquement, le soucis c'est que je n'arrive pas à lui faire mettre juste les images qui m'interressent, ils me met toutes les images de la page avec le style css3 que j'ai défini

voila le code:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

$("img").load(function() {
$(this).wrap(function(){
return '<span class="xoopstube_image-wrap ' + $(this).attr('class') + '" style="position:relative; display:inline-block; background:url(' + $(this).attr('src') + ') no-repeat center center; width: ' + $(this).width() + 'px; height: ' + $(this).height() + 'px;" />';
});
$(this).css("opacity","0");
});

});
</script>

le code html que je veut traiter:

<div class="xoopstube_image-wrap" itemprop="thumbnailUrl" style="float: left; padding: 0 4px 4px 0;">
<{if $video.screen_shot}>
<a href="<{$xoops_url}>/modules/<{$video.module_dir}>/singlevideo.php?cid=<{$video.cid}>&lid=<{$video.id}>" target=""><{$video.videothumb}></a>
<{/if}>
</div>

C'est donc cette variable smarty que je veut qu'il traite et pas toutes les images de la page:

<{$video.videothumb}>

Mais je n'y arrive pas car si j'enlève le script javascrit et que j'essaye de traiter le div avec background:url() il ne veut pas prendre ma variable, alors qu'avec le javascript ça fonctionne parfaitement, sauf qu'il ne s'arrête pas juste à cette variable ,un peu logique si on regarde le code mais j'y connais queue dalle en javascript, donc un petit coup de main serait pas de refus

Merci de votre aide



A voir également:

2 réponses

animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
Modifié par animostab le 9/06/2014 à 01:53
Salut

je ne connais pas xoops donc je ne sais pas ce que génère <{$video.videothumb}> ni ce que tu peux changer avec ce genre de code

par contre

$("img").load(function()
ca va donc déclencher la fonction sur toutes les images de la page

donc il faut donner une id à l'image que tu veux traiter
donc il faudrait
$("#id_image").load(function() etc ....

ou sinon tu créer un parent

<a href="<{$xoops_url}>/modules/<{$video.module_dir}>/singlevideo.php?cid=<{$video.cid}>&lid=<{$video.id}>" target=""><span id="monId">
<{$video.videothumb}></span></a>

et après

$("#monID").find("img").load(function() etc ...
ou
$("#monID").children("img").load(function() etc ...



sinon sans javascript

c'est possible de faire un css qui interprète du php
donc tu pourrais appeler dans un css une variable php pour un background
mais la ce n'est pas du js

dans un fichier php avec un header type mime text/css

https://www.alsacreations.com/astuce/lire/1433-utiliser-php-pour-gerer-vos-styles-css.html

ou carrément dans la page du genre

<style>
#id {
background:url(<?php echo $variable; ?>);
}
</style>

et la tu te fais pas chier avec jquery

Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
14 juin 2014 à 02:35
meme pas une reponse MERCI !!!
0