jQuery基于cookie实现换肤功能实例


Posted in jQuery onOctober 14, 2017

本文实例讲述了jQuery基于cookie实现换肤功能。分享给大家供大家参考,具体如下:

换肤,在你使用QQ、浏览器、酷狗等软件时,总是能看到这两个字(也有叫皮肤)。不过换肤的确能解决很多人的口味,换肤看似一个无关紧要的功能,但其实能起到吸引用户的作用。好啦,话不多说,开始上课。

附上本人的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>cookie的使用</title>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<style>
.huanFu{
  float:right;
}
.huanFu ul li{
  width:30px;height:30px;
  list-style:none;
  margin:0 5px;
  float:left;
  cursor:pointer;
  border:1px solid #000;
}
.fu1{background-color:#F00;}
.fu2{background-color:#0F0;}
.fu3{background-color:#00F;}
.fu4{background-color:#FF0;}
.huanFu ul li.select{border:3px solid #000;margin-top:-3px;}
</style>
<script>
$(function(){
  var cookieClass=getCookie('class');//读取本地的Cookie
  if(cookieClass){
    $("body").attr("class",cookieClass);//把页面的背景恢复成Cookie保存的颜色
  }else{
    $("body").attr("class","fu1");
  }
  $(".huanFu ul li").on("click",function(){
    $(this).addClass("select").siblings().removeClass("select");//标示出选中的样式
    var fuName=$(this).attr("fuName");//取得class名。讲解:起了一个fuName属性,在里面存了fu1,现在取出来而已
    $("body").attr("class",fuName);//改变body的class属性来达到背景换色的效果
    function SetCookie(name,value,day){//三个传值,名字、值、保存天数
      var exp = new Date();//取得本机当前时间(含日期)
      exp.setTime(exp.getTime() + day*24*60*60*1000);//把天数变成毫秒保存起来
      document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();//以name=fu1;expires=Date {Thu Jun 26 2014 23:23:25 GMT+0800}这一长串的字符串保存到本机的cookie中
    }
    SetCookie("class",fuName,7);//设置Cookie过程
  });
  function getCookie(name){//读取本地的Cookie过程
    var nameTit=name+"=";//此时的name值就是"class",nameTit="class="
    var ca=document.cookie.split(';');//读取本地cookie的内容是"xxx.xxx;xxx.xxx",所以我们去掉';'后,它会以数组的形式保存入ca内。
    for(var i=0;i<ca.length;i++){//循环ca数组
      var c=ca[i];
      while(c.charAt(0)==' '){//如果开头第一个字符是空格的话,读取就从第二位到最后一位
        c=c.substring(1,c.length);
      }
      if(c.indexOf(nameTit)==0){//判断是否存在,并是否第一位开始的"class="
        return c.substring(nameTit.length,c.length);//取得class=fu1中的"fu1"
      }
      return null;
    }
  }
});
</script>
</head>
<body class="fu1">
  <div class="huanFu">
    <ul>
      <li class="fu1" fuName="fu1"></li>
      <li class="fu2" fuName="fu2"></li>
      <li class="fu3" fuName="fu3"></li>
      <li class="fu4" fuName="fu4"></li>
    </ul>
  </div>
</body>
</html>

把上面的代码看懂后,再copy到你编辑软件中查看效果。点击右上角的颜色块,页面的背景色变成了颜色块对应的颜色,然后关闭你的浏览器,再次打开这个页面,是不是惊奇的发现,颜色就是你上次关闭浏览器的颜色。我在代码中都加上了相应的注释,别看script代码长,其实很容易理解,就是利用浏览器的cookie保存你的值,实现时刻记录你的颜色选择。

在下一篇文章中,我们会使用cookie.js插件,来实现换肤功能。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
jQuery自动或手动图片切换效果
Oct 11 jQuery
基于jquery实现五星好评
Nov 18 jQuery
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
基于jQuery ztree实现表格风格的树状结构
Aug 31 jQuery
jQuery实现的简单日历组件定义与用法示例
Dec 24 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
jQuery属性选择器用法实例分析
Jun 28 jQuery
jQuery AJAX应用实例总结
May 19 jQuery
jQuery实现推拉门效果
Oct 19 jQuery
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 #jQuery
bootstrap可编辑下拉框jquery.editable-select
Oct 12 #jQuery
jQuery中 DOM节点操作方法大全
Oct 12 #jQuery
jQuery自动或手动图片切换效果
Oct 11 #jQuery
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 #jQuery
jQuery中过滤器的基本用法示例
Oct 11 #jQuery
jQuery中extend函数简单用法示例
Oct 11 #jQuery
You might like
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
QQ登录简单实现代码
2021/03/09 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python如何去除字符串中不想要的字符
2020/07/05 Python
如何使用VSCode愉快的写Python于调试配置步骤
2018/04/06 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
python 输出所有大小写字母的方法
2019/01/02 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
酒店总经理工作职责
2013/12/13 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
新店开张活动方案
2014/08/24 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
投诉信范文
2015/07/02 职场文书
golang生成并解析JSON
2022/04/14 Golang