Jump to content

[TUTO] Menu qui suit le scroll


Recommended Posts

Bonjour à tous.

 

Je viens proposé un petit tutoriel qui permet de faire en sorte que le menu suive le scroll de la page pour que le visiteur l'ai toujours sous la main.

 

Editer le fichier : "themes/Nom_de_votre_theme/css/modules/blocktopmenu/css/superfish-modified.css"

 

Ajouter le code suivant avant ".sf-menu {...}"

@media (min-width: 1200px) {
.sf-menu.floatable {
position: fixed;
top: 0px;
width: 1170px; }
}

@media (max-width: 1199px) {
.sf-menu.floatable {
position: fixed;
top: 0px;
width: 970px; }
}

@media (max-width: 991px) {
.sf-menu.floatable {
position: fixed;
top: 0px;
width: 750px; }
} 

Ensuite, éditer le fichier : "themes/Nom_de_votre_theme/header.tpl"

 

Ajouter le code suivant avant "</head>"

<script>
var positionElementInPage = $('.sf-menu').offset().top;
$(window).scroll(
    function() {
        if ($(window).scrollTop() >= positionElementInPage) {
            // fixed
            $('.sf-menu').addClass("floatable");
        } else {
            // relative
            $('.sf-menu').removeClass("floatable");
        }
    }
);
</script> 

Normalement, votre menu devrait suivre le scroll  ;)

 

Voici mon site pour vous donner une idée : http://www.titityler1.fr/

 

PS : testé sur SAFARI et CHROME sur Prestashop 1.6.0.6

  • Like 5
Link to comment
Share on other sites

  • 2 months later...

Bonjour,

 

Prestashop 1.6 embarque bootstrap 3.0 qui propose une multitude de fonctionnalité dont "affix" qui permet de fixer un contenu.

Une ligne de js suffit pour réaliser ce genre de fonctionnalité... Pensez y ;)

 

http://getbootstrap.com/javascript/#affix

 

PS : merci titityler pour le partage, c'est sympa ;)

 

V++

 

Atch

Edited by Atch (see edit history)
Link to comment
Share on other sites

Merci Atch.

 

il est vrai que 1.6 est très convivial.

 

 

Je reste cependant bloqué avec une version 1.5 où je n'ai pas de solutions pour fixer le menu en fonction de la scroll bar.

 

J'utilise le module de base "blocktopmenu".

 

 

Si quelqu'un passe par là et peut éclairer ma lanterne.

 

Merci à tous

Link to comment
Share on other sites

  • 2 weeks later...

Parfait, j'avais pour projet de mettre en place une telle fonction et c'est parfait.

Je l'ai adapté pour que ça  ne fonctionne que sur les pages catégories et liste de produit et que  ça prenne la totalité du header et ça marche impec.

 

Merci

Bonsoir pouvez vous me dire comment vous avez fait.Car je veux l'adapter.Merci

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...
  • 1 month later...

Bonjour,

Fonctionne chez moi en local en 1.6.0.9.

Cependant, j'ai une petite question : 

Je souhaiterai UNIQUEMENT que ce soit la bannière qui reste fixe (blocbanner).

J'ai tenté d'insérer "position : fixed;" et effectivement ma bannière reste fixe mais durant un scroll, c'est moche, la case de recherche, le logo et d'autres éléments passent devant cette bannière.

J'espère que vous pourrez éclairer la lenterne d'un newbie de chez newbie... :)

 

Merci

Edited by faire-affaires (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous, je viens de passer à prestashop 1.6.0.11 et ca ne marche plus.

J'ai l'impression qu'il ne prend pas en compte le javascript qui est dans le header.tpl au moment où on dépasse le menu avec le scroll.

 

Avez-vous réussi à le faire fonctionner?

 

Merci

Link to comment
Share on other sites

  • 3 months later...

Bonjour à tous, je viens de passer à prestashop 1.6.0.11 et ca ne marche plus.

J'ai l'impression qu'il ne prend pas en compte le javascript qui est dans le header.tpl au moment où on dépasse le menu avec le scroll.

 

Avez-vous réussi à le faire fonctionner?

 

Merci

 

Hello Titityler !

As-tu trouvé une solution pour que le scroll fonctionne avec la mise à jour ?

Merci d'avance !

Link to comment
Share on other sites

  • 3 months later...

Bonsoir,

 

la solution pour prestashop 1.6.0.14 :

 

juste après "responsiveflagMenu = true;" dans votre-thème->js->modules->blocktopmenu->jsblocktopmenu.js

 

ajouter:

 

var positionElementInPage = $('.sf-menu').offset().top;
        $(window).scroll(
            function() {
                if ($(window).scrollTop() >= positionElementInPage) {
                    // fixed
                    $('.sf-menu').addClass("floatable");
                } else {
                    // relative
                    $('.sf-menu').removeClass("floatable");
                }
            }
        );

 

dans votre-thème->css->global.css

 

ajouter :

@media (min-width: 1200px) {
.sf-menu.floatable {
position: fixed;
top: 0px;
width: 1170px; }
}

@media (max-width: 1199px) {
.sf-menu.floatable {
position: fixed;
top: 0px;
width: 970px; }
}

@media (max-width: 991px) {
.sf-menu.floatable {
position: fixed;
top: 0px;
width: 750px; }
}

 

recompiler ne fait pas de mal et le tour est joué ;-)

 

Bonne soirée

Link to comment
Share on other sites

Hello Titityler !

As-tu trouvé une solution pour que le scroll fonctionne avec la mise à jour ?

Merci d'avance !

 

Bonsoir,

 

la solution pour prestashop 1.6.0.14 :

 

juste après "responsiveflagMenu = true;" dans votre-thème->js->modules->blocktopmenu->jsblocktopmenu.js

 

ajouter:

 

var positionElementInPage = $('.sf-menu').offset().top;

        $(window).scroll(

            function() {

                if ($(window).scrollTop() >= positionElementInPage) {

                    // fixed

                    $('.sf-menu').addClass("floatable");

                } else {

                    // relative

                    $('.sf-menu').removeClass("floatable");

                }

            }

        );

 

dans votre-thème->css->global.css

 

ajouter :

@media (min-width: 1200px) {

.sf-menu.floatable {

position: fixed;

top: 0px;

width: 1170px; }

}

 

@media (max-width: 1199px) {

.sf-menu.floatable {

position: fixed;

top: 0px;

width: 970px; }

}

 

@media (max-width: 991px) {

.sf-menu.floatable {

position: fixed;

top: 0px;

width: 750px; }

}

 

recompiler ne fait pas de mal et le tour est joué ;-)

 

Bonne soirée

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 years later...
  • 10 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...