Comment mettre le skin du choix du visiteur

vince781600 -  
RAD ZONE Messages postés 5362 Statut Contributeur -
Bonjour,

Je suis à la recherche d'un script assez spéciale.

Je m'explique, je voudrais que lorsqu'on va sur ma page d'accueil, un petite boîte s'ouvre en demandant quel est la couleur préféré du visiteur. Jaune, vert...

En fonction de sa réponse, tout le site sera de la couleur de son choix, Un changement de css se fait en fonction de la réponse.

Donc je recherche un script capable de faire ça. je maitrise le javascript, le php ainsi que mysql, le html et le css.

Merci.

1 réponse

RAD ZONE Messages postés 5362 Statut Contributeur 1 360
 
salut

tu peux faire comme ca

tu met tes liens vers les css en leur donnant un "titre" et en mettant "alternate stylesheet" pour les choix possible sauf la default et tu rajoute un meta pour designer la css default
<META http-equiv="Default-Style" content="default">


<link rel="stylesheet" type="text/css" href="default.css"  />
    <link rel="alternate stylesheet" type="text/css" href="NUMERO2.css" title="NUMERO2" />
    <link rel="alternate stylesheet" type="text/css" href="NUMERO3.css" title="NUMERO3" />


et tu mets ce type de liens en js ou tu veux ta boite de choix !qui appeleras par leur titres la css choisie

<div><a href="#" onclick="setActiveStyleSheet('default'); return false;"> style  default</a> 
    <a href="#" onclick="setActiveStyleSheet('NUMERO2'); return false;"> NUMERO2</a> 
    <a href="#" onclick="setActiveStyleSheet('NUMERO3'); return false;"> NUMERO3</a> </div>


et tu copie et sauvegarde ce js que tu lie a ta page !!
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);


RAD
1