11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai fait pour une amie un petit bout de code qui cache le contenu du site pour faire apparaitre la photo du background 5 seconde au chargement du site sur l'accueil avec un "click pour passer" pour les plus presses.

mon code est tout con


jQuery(function() {

	jQuery('#contentHide').hide();
	jQuery('#footerHide').hide();
	jQuery('#contentHide').slideUp(300).delay(3000).fadeIn(400);
	jQuery('#footerHide').delay(4000).fadeIn(400);

});


ca fonctionne bien, voir trop bien parce que quand on est dans son site et que l'on revient sur l'accueil et bien cette fonction bien entendu ce relance.

J'ai passe un peu en revu les fonctions sur la doc js/jquery, mais etant un debutant dans le domaine, je vois pas trop ce que je dois faire, est-ce que vous pourriez me mettre sur le bon chemin....

Merci
a++
nico
Salut,

Il faut passer par un bout de script PHP:


<?php
session_start();
?>
<html>
  <head>
    <!-- ... Contenu de ton head ... -->
    <?php
    if( !isset($_SESSION['first_load']) )
    {
      $_SESSION['first_load'] = true
    ?>
    <!-- Ici, les scripts a exécuter uniquement au premier chargement -->
    <?php
    }
    ?>
  </head>
  <body>
  </body>
</html>


Ou alors, il faut gérer les cookies avec Javascript.
Modifié par JJK801 (13 Jun 2012 - 09:15)
Hello,

Merci pour la reponse rapide, alors j'ai fait quelques tests, mais ca ne fonctionne pas.

Du coup je me dis, est-ce un probleme parce qu'elle a fait son site sur joomla ?
Apres j'ai teste sur safari, je me suis dis est-ce le cache, mais ca change rien.

j'ai essayer avec session_start() et sans me disant que peut etre joomla...


<?php
session_start();
?>
<?php
defined('_JEXEC') or die;


require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'functions.php';

// Create alias for $this object reference:
$document = & $this;

// Shortcut for template base url:
$templateUrl = $document->baseurl . '/templates/' . $document->template;

// Initialize $view:
$view = $this->artx = new ArtxPage($this);

// Decorate component with Artisteer style:
$view->componentWrapper();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $document->language; ?>" lang="<?php echo $document->language; ?>" dir="ltr">
<head>
 <jdoc:include type="head" />
 <link rel="stylesheet" href="<?php echo $document->baseurl; ?>/templates/system/css/system.css" type="text/css" />
 <link rel="stylesheet" href="<?php echo $document->baseurl; ?>/templates/system/css/general.css" type="text/css" />
 <link rel="stylesheet" type="text/css" href="<?php echo $templateUrl; ?>/css/template.css" media="screen" />
 <!--[if IE 6]><link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.ie6.css" type="text/css" media="screen" /><![endif]-->
 <!--[if IE 7]><link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.ie7.css" type="text/css" media="screen" /><![endif]-->
 <script type="text/javascript">if ('undefined' != typeof jQuery) document._artxJQueryBackup = jQuery;</script>

 <script type="text/javascript" src="<?php echo $templateUrl; ?>/jquery.js"></script>
 <script type="text/javascript">jQuery.noConflict();</script>
 <script type="text/javascript" src="<?php echo $templateUrl; ?>/script.js"></script>
 <script type="text/javascript">if (document._artxJQueryBackup) jQuery = document._artxJQueryBackup;</script>
 <!-- ... Contenu de ton head ... -->
    <?php
    if( !isset($_SESSION['first_load']) )
    {
      $_SESSION['first_load'] = true
    ?>
   
<script>
jQuery(function() {

	jQuery('#contentHide').hide();
	jQuery('#footerHide').hide();
	jQuery('#contentHide').slideUp(300).delay(3000).fadeIn(400);
	jQuery('#footerHide').delay(4000).fadeIn(400);
	});
</script>

    <?php
    }
    ?>
</head>


je fais encore des tests, merci
nico
salut nicodemo, qu'est-ce que tu entends par "je reviens sur la page d'accueil" ?
Est-ce que ton document se recharge ou est-ce que tu restes dans ton document ?

Si tu désires que l'animation se fasse uniquement au chargement, tu dois faire ainsi :
$(document).ready(function () {
	$("#contentHide").hide().delay(3000).fadein(400);
	$("#footerHide").hide().delay(4000).fadein(400);
});

par contre, à chaque chargement du document, tu auras la même animation !
tournikoti a écrit :
salut nicodemo, qu'est-ce que tu entends par &quot;je reviens sur la page d'accueil&quot; ?
Est-ce que ton document se recharge ou est-ce que tu restes dans ton document ?

Si tu désires que l'animation se fasse uniquement au chargement, tu dois faire ainsi :
$(document).ready(function () {
	$(&quot;#contentHide&quot;).hide().delay(3000).fadein(400);
	$(&quot;#footerHide&quot;).hide().delay(4000).fadein(400);
});

par contre, à chaque chargement du document, tu auras la même animation !


salut,

c'est justement ce que je veux pas.

une fois que t'es dans le site et que tu reviens sur l'accueil, je veux justement pas que ca se cache. Je vais regarde un peu du cote de php, bon ca presse pas trop maintenant...

a++
Tu n'as répondu à la question car elle conditionne la solution que tu recherches.
Est-ce que l'accueil est dans une page HTML indépendante des autres options de ton menu ou est-ce que l'accueil se trouve dans la même page ?

Si elle est dans la même page, l'animation se fera au chargement !
Si elle est dans une page indépendante de ton site, cette solution basique aura l'inconvéniant de voir l'animation se faire à chaque chargement.

Sinon, la solution de JJK801 avec un cookie est une bonne solution !

Si tu nous avais mis un lien vers ton site, nous aurions pu analyser ton problème avec plus d'efficacité. En l'absence de ce lien, nous ne pouvons qu'émettre des hypothèses !
Modifié par tournikoti (18 Jun 2012 - 12:52)