zoukankan      html  css  js  c++  java
  • cookie,dom,css,js实现页面换肤

    页面换肤已经成为web2.0的时尚,看似简单的过程,实现起来却不那么容易,因为它涉及到javascript写入和读取cookie,这篇文章详细介绍了通过存取cookie和dom操作调用不同的样式表文件来实现前台换肤功能。

    效果预览:

     

    Html代码部分:
    1.要有一个带id的样式表链接,我们要通过操作这个链接来调用不同的href。

    <link href="css/main0.css" rel="stylesheet" type="text/css" id="cssfile" />

    2.皮肤选择按钮(后台为每个li添加onclick事件,触发换肤功能)

    <ul id="skin">                
    <li id="skin_0" title="灰色">灰色</li>
    <li id="skin_1" title="绿色">绿色</li>
    <li id="skin_2" title="黄色">黄色</li>
    <li id="skin_3" title="蓝色">蓝色</li>
    <li id="skin_4" title="粉色">粉色</li>
    <li id="skin_5" title="紫色">紫色</li>
    </ul>

    Js部分:
    1.换肤方法

    //设置cookie,按钮选中状态,页面皮肤
    skin.setSkin=function(n){
        var skins =$("skin").getElementsByTagName("li");
        for (i=0;i<skins.length;i++)
        {
            skins[i].className="";//初始化按钮状态
        }
        skin.setCookie(n);//保存当前样式
        $("skin_"+n).className="selected";//设置选中皮肤按钮的样式
        $("cssfile").href="css/main"+n+".css";//设置页面样式
    }

    2.存取cookie

    //将当前皮肤n存到cookie
    skin.setCookie=function(n){
        var expires=new Date();
        expires.setTime(expires.getTime()+24*60*60*365*1000);
        var flag="Skin_Cookie="+n;
        document.cookie=flag+";expires="+expires.toGMTString();
    }
    //返回用户设置的皮肤样式
    skin.readCookie=function(){
        var skin=0;
        var mycookie=document.cookie;
        var name="Skin_Cookie";
        var start1=mycookie.indexOf(name+"=");
        if(start1==-1){
            skin=0;//如果没有设置则显示默认样式
        }
        else{
            var start=mycookie.indexOf("=",start1)+1;
            var end=mycookie.indexOf(";",start);
            if(end=-1){
                end=mycookie.length;
            }
            var values= unescape(mycookie.substring(start,end));
            if (values!=null)
            {
                skin=values;
            }
        }
        return skin;
        
    }

    3.绑定换肤按钮事件

    skin.addEvent=function(){
        var skins =$("skin").getElementsByTagName("li");
        for (i=0;i<skins.length;i++)
        {
            skins[i].onclick=function(){skin.setSkin(this.id.substring(5))};
        }
    }

    4.页面加载完成后设置皮肤样式

    window.onload=function(){
        skin.setSkin(skin.readCookie());//根据读取cookie返回值设置皮肤样式
        skin.addEvent();//绑定按钮事件
    }

  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/luluping/p/1375543.html
Copyright © 2011-2022 走看看