Question

hey les gars, Ne l'obtenez pas ... Je veux montrer une barre en haut de ma page uniquement si vue avec IE6, IE7 ou IE8.

<div id="topbar">
    <div class="topbarcontent">Some Information for users.</div>
    <div class="topbarCloser" title="Schließen">&nbsp;</div>
</div>

jQuery:

if ($.browser.msie && $.browser.version.substr(0,1)<9) { // if ie6 || ie7 || ie8

var topbar = $.cookie('TopBar');

if (topbar === 'on') {
    $('#topbar').hide();
} else { 
    $('#topbar').show();
}

//Browser Tip
$('#topbar .topbarCloser').click(function() {
    $(this).parent().slideUp({
        duration: 300,
        easing: 'easeOutQuint',
        complete: function() { 
            $('#topbar').remove();
            $.cookie('TopBar', 'on', { expires: 1000 });
        }
    });
});

}

L'utilisateur peut simplement cliquer sur le plus proche, un cookie est enregistré et la barre est masquée pour les visites futures.(Je sais que cela devrait être fait avec une base de données, mais dans mon cas, ça va)

Cela fonctionne correctement dans IE8 mais dans IE7, la barre clignote pour quelques millisecondes et que celle cachée.Donc, si la page est visitée pour la première fois dans IE7, le topbar doit être visible, mais ce n'est pas le cas.Je peux le voir clignoter très peu de temps et puis il est caché.(ne disparaît pas, est juste caché).

Une idée de ce qui pourrait causer cela?Quelque chose de bizarre avec mon code?

Était-ce utile?

La solution

Ceci est probablement causé par votre CSS.Votre JS ne le cache pas tout de suite, et votre CSS l'a visible.Basculez votre cas.Cachez votre barre par défaut (en CSS), puis, si nécessaire, montrez-le avec JavaScript.

Cela empêchera ce bref instant sur la charge de la page où il est visible avant que votre JS ne s'allume pour le cacher.

SO ...

#topbar { display: none; }

Cela signifie que votre JS peut simplement lire:

if (topbar != 'on') {
    $('#topbar').show();
}

Autres conseils

Essayez de modifier le plug-in Cookie:

en ligne 83 au lieu de:

if (document.cookie && document.cookie != '') {

Utilisation:

if ((typeof(document.cookie) != 'undefined') && document.cookie != '') {

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top