Besoin d'aide pour un site web avec le système parallax

Résolu/Fermé
bullekichi - 12 mai 2013 à 13:50
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 - 12 mai 2013 à 19:38
Bien le bonjour,
je suis un débutant en web, et je dois réalisé un site web pour l'école.
J'ai décidé de faire un site avec un système parallax. J'ai téléchargé un template et je remplace les images et les couleurs dans dreamweaver. (Jusque la ca va )
J'aimerai faire en sorte que lorsque l'on se trouve sur la page d'accueil, il y'ai une image. Et qu'au fur et a mesure que l'on descende vers la page suivante, l'image se "désintègre" .
voici un exemple: http://www.englass.ru/ (avec le titre "englass" bleu)
Si quelqu un savait m'aider ce serait génial merci. :)
A voir également:

2 réponses

prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
12 mai 2013 à 13:55
Je suis justement en train de concevoir un site dans le genre. Quelles notions de javascript as-tu ? C'est pas forcément l'effet le plus simple à mettre en place.
0
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
Modifié par prosthetiks le 12/05/2013 à 15:50
Voila:

<html>
<head>
  <title>
  </title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  <style type="text/css">
    body{height: 3000px;}
    .element{
      position: absolute;
      width: 50px;
      height: 50px;
      background: url('http://www.absyx.fr/sites/default/files/imagecache/Preset-1-2/imagefield/test-page/un-chat-avec-un-melon-croute-sur-sa-tete.jpg') no-repeat center center;
      opacity: .8;
    }
    .image1{
      left: 50px;
      background-position: 0px -50px;
    }
    .image2{
      left: 100px;
      background-position: -50px -50px;
    }

    .image3{
      left: 150px;
      background-position: -100px -50px;
    }

    .image4{
      left: 200px;
      background-position: -150px -50px;
    }

    .image5{
      left: 50px;
      background-position: 0px 0px;
    }

    .image6{
      left: 100px;
      background-position: -50px 0px;
    }

    .image7{
      left: 150px;
      background-position: -100px 0px;
    }

    .image8{
      left: 200px;
      background-position: -150px 0px;
    }

  </style>
</head>
<body>
  <div class="image1 element"></div>
  <div class="image2 element"></div>
  <div class="image3 element"></div>
  <div class="image4 element"></div>
  <div class="image5 element"></div>
  <div class="image6 element"></div>
  <div class="image7 element"></div>
  <div class="image8 element"></div>
</body>
<script type="text/javascript">
  var parralax = {
    elements: {
      image1: {
        item: $('.image1'),
        start: 1,
        end:   800,
        from: {top: 500},
        to: {top: -600}
      },
       image2: {
        item: $('.image2'),
        start: 1,
        end:   800,
        from: {top: 500},
        to: {top: -450}
      },
       image3: {
        item: $('.image3'),
        start: 1,
        end:   800,
        from: {top: 500},
        to: {top: -800}
      },
       image4: {
        item: $('.image4'),
        start: 1,
        end:   800,
        from: {top: 500},
        to: {top: -50}
      },
       image5: {
        item: $('.image5'),
        start: 1,
        end:   800,
        from: {top: 450},
        to: {top: -150}
      },
       image6: {
        item: $('.image6'),
        start: 1,
        end:   800,
        from: {top: 450},
        to: {top: -600}
      },
       image7: {
        item: $('.image7'),
        start: 1,
        end:   800,
        from: {top: 450},
        to: {top: -1500}
      },
       image8: {
        item: $('.image8'),
        start: 1,
        end:   800,
        from: {top: 450},
        to: {top: -200}
      }
    },
    _initialize: function(){
      var me = this;
      this.addEventsListeners();
      $.each(me.elements, function(key, value){
        //console.log(value);
        $.each(value.from, function(key1, value1){
          $(value.item).css(key1, value1 + 'px');
        });
      });
      return this;
    },
    basePosElement: function(element){
       $.each(element.from, function(key, value){
          $(element.item).css(key, value + 'px');
        });
    },
    addEventsListeners: function(){
      var me = this;
      $(window).scroll(function(e){
        me.moveElements(e.currentTarget.pageYOffset);
      });
    },
    moveElements: function(scrollY){
      console.log(scrollY);
      var me = this;
      $.each(me.elements, function(key, value){
        if(value.start < scrollY && value.end > scrollY){
          // Play anim
          var from = value.from;
          $.each(from, function(key1, value1){
            //console.log((value.end - value.start));
            var pourcentJoue = ((scrollY - value.start) * 100) / (value.end - value.start);
            if(value.to[key1] < from[key1]){
              var currentValue = from[key1]-(((from[key1] - value.to[key1]) * pourcentJoue) / 100);
            }else{
              var currentValue = ((value.to[key1] - from[key1]) * pourcentJoue) / 100;
            }
            $(value.item).css(key1, currentValue);
          });
        }else{
          me.basePosElement(value);
        }
      });
    },
    addElements: function(){

    }
  };
  var parralaxInstance = parralax._initialize();
</script>
</html>
0
Donc si je comprend bien mon image de base doit être coupé en 8 morceau qui lorsqu'on naviguera dans la page bougerons et formeront l'image de départ ?
0
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
12 mai 2013 à 16:32
Si c'est pour recomposer une image, le mieux à faire est de jouer avec le background-position comme je l'ai fait dans l'exemple.

Quelle est l'image que tu veux recréer ? Tu arrives a la poster ici ?
0
bullekichi Messages postés 64 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 13 février 2016 1
12 mai 2013 à 16:55
0
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
12 mai 2013 à 17:00
Okk, elle est beaucoup trop grande pour un affichage web classique.

Je vais voir ce que je peux faire :p Je te répond d'ici 20 min
0
bullekichi Messages postés 64 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 13 février 2016 1
12 mai 2013 à 17:06
Merci beaucoup :)
voila un apercu de ma première page de mon site:
https://www.flickr.com/photos/87889298@N02/8731073163/in/photostream/
0