Note that there are some explanatory texts on larger screens.

plurals
  1. POjQuery theme switcher for multiple stylesheets
    primarykey
    data
    text
    <p>I would like to use this styleswitcher script (http://www.kelvinluck.com/assets/jquery/styleswitch/),but have it load 2 stylesheets at once. The objective is the user can select a font size and/or colour and/or screen width. Not sure if it's just a case of adding a function to handle more than one cookie?</p> <p>Here's what I have so far: (http://www.digitalkulture.com/example/)</p> <p>If anyone has an idea, I'd be grateful. Thank you.</p> <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;!-- Stylesheets --&gt; &lt;link rel="stylesheet" type="text/css" href="styles/defaultTheme.css" /&gt; &lt;link rel="alternate stylesheet" type="text/css" href="styles/silverTheme.css" title="silverTheme" /&gt; &lt;link rel="alternate stylesheet" type="text/css" href="styles/purpleTheme.css" title="purpleTheme" /&gt; &lt;link rel="alternate stylesheet" type="text/css" href="styles/highvisTheme.css" title="highvisTheme" /&gt; &lt;link rel="alternate stylesheet" type="text/css" href="styles/wideScreen.css" title="wideScreen" /&gt; &lt;link rel="alternate stylesheet" type="text/css" href="styles/fullScreen.css" title="fullScreen" /&gt; &lt;link rel="alternate stylesheet" type="text/css" href="styles/bigText.css" title="bigText" /&gt; &lt;!-- Scripts --&gt; &lt;script type="text/javascript" src="js/jquery-1.6.1.js" /&gt;&lt;/script&gt; &lt;script type="text/javascript" src="js/styleswitcher.js" /&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; // initialise plugins jQuery(function(){ var $sw_link = jQuery("a[title='themes_switch']"); jQuery(".dashTemplate a[title*=Theme]").click(function(){ jQuery(".dashTemplate a[title*=Theme]").removeClass("current"); jQuery(this).addClass("current"); }); jQuery(".dashTemplate a[title*=Screen]").click(function(){ jQuery(".dashTemplate a[title*=Screen]").removeClass("current"); jQuery(this).addClass("current"); }); jQuery(".dashTemplate a[title*=Text]").click(function(){ jQuery(".dashTemplate a[title*=Text]").removeClass("current"); jQuery(this).addClass("current"); }); jQuery(".dashTemplate a[title='defaultTheme']").addClass("defaultTheme").click(function(){ setActiveStyleSheet('defaultTheme'); return false; }); jQuery(".dashTemplate a[title='silverTheme']").addClass("silverTheme").click(function(){ setActiveStyleSheet('silverTheme'); return false; }); jQuery(".dashTemplate a[title='purpleTheme']").addClass("purpleTheme").click(function(){ setActiveStyleSheet('purpleTheme'); return false; }); jQuery(".dashTemplate a[title='highvisTheme']").addClass("highvisTheme").click(function(){ setActiveStyleSheet('highvisTheme'); return false; }); jQuery(".dashTemplate a[title='wideScreen']").addClass("wideScreen").click(function(){ setActiveStyleSheet('wideScreen'); return false; }); jQuery(".dashTemplate a[title='fullScreen']").addClass("fullScreen").click(function(){ setActiveStyleSheet('fullScreen'); return false; }); jQuery(".dashTemplate a[title='bigText']").addClass("bigText").click(function(){ setActiveStyleSheet('bigText'); return false; }); }); &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div class="text"&gt; Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent tempus, purus non ultrices convallis, leo massa porta erat, et gravida magna quam at ante. Vivamus vitae sem lectus. Aliquam augue tortor, tincidunt vitae tempus ac, porta eu sem. Mauris laoreet erat vitae metus venenatis ac lacinia lorem ultricies. &lt;/div&gt; &lt;!--HTML selectors--&gt; &lt;ul class="dashTemplate"&gt; &lt;li&gt;&lt;a class="defaultTheme" title="defaultTheme" href="#"&gt;reset color&lt;/a&gt; | &lt;li&gt;&lt;a class="silverTheme" title="silverTheme" href="#"&gt;silver color&lt;/a&gt; | &lt;li&gt;&lt;a class="purpleTheme" title="purpleTheme" href="#"&gt;purple color&lt;/a&gt; | &lt;li&gt;&lt;a class="highvisTheme" title="highvisTheme" href="#"&gt;yellow color&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;ul class="dashTemplate"&gt; &lt;li&gt;&lt;a class="wideScreen" title="wideScreen" href="#"&gt;wide screen&lt;/a&gt; | &lt;li&gt;&lt;a class="fullScreen" title="fullScreen" href="#"&gt;full screen&lt;/a&gt; | &lt;li&gt;&lt;a class="defaultTheme" title="defaultTheme" href="#"&gt;reset&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;ul class="dashTemplate"&gt; &lt;li&gt;&lt;a class="bigText" title="bigText" href="#"&gt;big text&lt;/a&gt; | &lt;li&gt;&lt;a class="defaultTheme" title="defaultTheme" href="#"&gt;reset&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>The styleswitcher.js file</p> <pre><code>function setActiveStyleSheet(title) { var i, a, main; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 &amp;&amp; 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 &amp;&amp; a.getAttribute("title") &amp;&amp; !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 &amp;&amp; a.getAttribute("rel").indexOf("alt") == -1 &amp;&amp; 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 &lt; 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); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload