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输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
jQuery 实现双击编辑表格功能
Jun 19 jQuery
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
jQuery中extend函数简单用法示例
Oct 11 jQuery
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
jquery的 filter()方法使用教程
Mar 22 jQuery
jQuery实现获取选中复选框的值实例详解
Jun 28 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 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
带密匙的php加密解密示例分享
2014/01/29 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
php组合排序简单实现方法
2016/10/15 PHP
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
python清除函数占用的内存方法
2018/06/25 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
合作意向书范本
2014/03/31 职场文书
小学新学期寄语
2014/04/02 职场文书
优秀护士演讲稿
2014/04/30 职场文书
财务部绩效考核方案
2014/05/04 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
Node实现搜索框进行模糊查询
2021/06/28 Javascript