IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Load page directement sur une ancre


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut Load page directement sur une ancre
    Bonjour à tous,

    Je réalise actuellement un site one page horizontal.
    Je possède trois écrans et mon écran d'accueil est celui du milieu.

    Je voudrais en fait que lorsque l'utilisateur arrive sur mon site, il soit automatiquement sur ma div du milieu.

    J'aimerais donc savoir s'il est possible de rediriger un visiteur directement vers une ancre.

    Je le fais actuellement avec jquery et sa fonction scrollLeft de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('html, body').stop().animate({
    			scrollLeft: $('#home').offset().left
    		}, 750);
    Le problème avec cette méthode c'est que l'utilisateur a un bref aperçu du contenu du site (la div de gauche en l'ocurrence) avant même d'avoir navigué dessus.. J'aimerais donc rediriger automatiquement vers la div du milieu, sans effet.

    Merci d'avance pour votre aide!

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    pourquoi passer par animate alors ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('html, body').css({left:750});

    ou mettre directement un left dans le css sans passer par js ...

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    Justement, ceci ne fonctionne pas, ma page reste toute à gauche..

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <style type="text/css">
    html, body {
          margin:0;
    	padding:0;
     
    	}
    body {width:100%;
    overflow:auto;
    height:100%;
    }	
    .pag {	
     
    	float : left;
         	position : relative;
    	width : 20%;
    	font-size : 24px;
     
    	}
     
     
    </style>
    <script type="text/javascript">
    $(function(){
     $("body").scrollLeft($('.pag:eq(2)').offset().left)
    })
     
    </script>
     
    </head>
    <body>
    <div style="width:400%">
    <div class="pag"> 
    page 1
    </div>
    <div class="pag"> 
    page 2
    </div>
    <div class="pag"> 
    page3
    </div>
    <div class="pag"> 
    page 4
    </div>
    </div>
     
    </body>
     
    </html>

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    Quand j'utilise ton exemple j'arrive bien à la bonne ancre directement, et pourtant si je fais la même chose dans ma page d'accueil, j'ai une animation...

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    avec quel code ?

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    Je ne voulais pas surcharger le post car les codes sont longs mais il vaut mieux les mettre.. Je charge deux fichiers au début de ma page d'index :

    premier fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(function() {
    	$('div.pages a').bind('click',function(){
     
    		var anchor = $(this);
     
    		$('html, body').stop().animate({scrollLeft: $(anchor.attr('href')).offset().left}, 1000,'easeInOutQuad');
     
    	});
    });
    deuxième fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $(document).ready(function() {
    	$("a").anchorAnimate()
    });
     
    jQuery.fn.anchorAnimate = function(settings) {
     
     	settings = jQuery.extend({
    		speed : 1100
    	}, settings);	
     
    	return this.each(function(){
    		var caller = this
    		$(caller).click(function (event) {	
    			event.preventDefault()
    			var locationHref = window.location.href
    			var elementClick = $(caller).attr("href")
     
    			var destination = $(elementClick).offset().top;
    			$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, settings.speed, function() {
    				window.location.hash = elementClick
    			});
    		  	return false;
    		})
    	})
    }
    (J'ai enlevé tout le code superflux et inutile)

    Je pense qu'ils sont responsables de cette animation

    EDIT : J'ai réussi à précharger ma page directement sur l'ancre désirée sans animation. Cependant, j'aimerais que si l'utilisateur actualise le site en se trouvant sur une autre page que la page d'accueil, l'effet soit présent pour le coup. Comme ça l'utilisateur comprendra qu'il est redirigé vers la page d'accueil. Mais je ne sais pas si c'est possible :

    En gros, de différencier une actualisation depuis la page d'accueil ou une autre page du site (sachant que par "page", j'entends "ancre") ?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    tu utilises animate()
    j'utilise css() ...

    tu as une animation,je n'en ai pas ...

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    J'ai résolu le problème d'animation. J'ai edité mon post

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [HTML] Lien d'une page html sur une iframe
    Par cosycorner dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/02/2007, 08h34
  2. afficher la flux d'une webcam en direct sur une page web
    Par michel_frederic dans le forum Multimédia
    Réponses: 8
    Dernier message: 15/06/2006, 14h34
  3. Imprimer une page web sur une seule feuille ?
    Par guidav dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/04/2006, 11h26
  4. Positionnement sur une ancre
    Par ghostdogpr dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 27/01/2006, 10h51
  5. Réponses: 2
    Dernier message: 19/03/2005, 23h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo