Salut,
J'ai une liste d'images destinée à un portfolio.
J'utilise un lien permettant de switcher la taille des images, soit normales, soit en miniatures …
J'ai ajouté un cookie pour garder en mémoire le dernier affichage choisi par l'internaute.
Il fonctionne bien … sauf que dans le cas où le dernier affichage choisi aurait été celui des images miniatures (donc pas par défaut), lors de l'affichage de la page il faut cliquer 2 fois (au lieu d'une seule fois) sur le lien afin de switcher à nouveau vers l'affichage normal.
Quelqu'un a t-il une idée pour résoudre ce léger bug ?
Merci d'avance
HTML
JavaScript
Modifié par yank (02 May 2012 - 08:46)
J'ai une liste d'images destinée à un portfolio.
J'utilise un lien permettant de switcher la taille des images, soit normales, soit en miniatures …
J'ai ajouté un cookie pour garder en mémoire le dernier affichage choisi par l'internaute.
Il fonctionne bien … sauf que dans le cas où le dernier affichage choisi aurait été celui des images miniatures (donc pas par défaut), lors de l'affichage de la page il faut cliquer 2 fois (au lieu d'une seule fois) sur le lien afin de switcher à nouveau vers l'affichage normal.
Quelqu'un a t-il une idée pour résoudre ce léger bug ?
Merci d'avance
HTML
<a href="#" class="switch_thumb">Switch Thumb</a>
<div class="selecter">
<div class="selecterBtns">
<ul class="nolist">
<li><a href="#" rel="test1" class="active">Test1</a></li>
<li><a href="#" rel="test2">Test2</a></li>
<li><a href="#" rel="test3">Test3</a></li>
</ul>
</div>
<div class="selecterContent">
<ul class="display">
<li>Projet1</li>
<li>Projet2</li>
<li>…</li>
</ul>
</div>
</div>
JavaScript
<script>
jQuery.cookie = function (key, value, options) {
if (arguments.length > 1 && String(value) !== "[object Object]") {
options = jQuery.extend({}, options);
if (value === null || value === undefined) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=',
options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '',
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
options = value || {};
var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};
</script>
<script type="text/javascript">
$(document).ready(function(){
if($.cookie("button")=="thumb_view"){
$('ul.display').addClass($.cookie("button"));
$("a.switch_thumb").addClass("swap");
}else{
$('ul.display').removeClass($.cookie("button"));
$("a.switch_thumb").removeClass("swap");
}
$("a.switch_thumb").toggle(function(){
$(this).addClass("swap");
$("ul.display").fadeOut("fast", function() {
$(this).fadeIn("fast").addClass("thumb_view");
});
$.cookie("button", "thumb_view");
}, function () {
$.cookie("button", "not_thumb_view");
$(this).removeClass("swap");
$("ul.display").fadeOut("fast", function() {
$(this).fadeIn("fast").removeClass("thumb_view");
});
$.cookie("button", "not_thumb_view");
});
});
</script>
Modifié par yank (02 May 2012 - 08:46)