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返回定位插件详解
May 15 jQuery
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 jQuery
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
jQuery实现鼠标滑动切换图片
May 27 jQuery
jQuery 移除事件的方法
Jun 20 jQuery
jquery实现异步文件上传ajaxfileupload.js
Oct 23 jQuery
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 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语法(5)
2006/10/09 PHP
php防止用户重复提交表单
2015/11/02 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
js实现电灯开关效果
2021/01/19 Javascript
python实现的简单文本类游戏实例
2015/04/28 Python
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
深入解析Python编程中JSON模块的使用
2015/10/15 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
python实现操作文件(文件夹)
2019/10/31 Python
医院护理人员的自我评价分享
2013/10/04 职场文书
高中打架检讨书
2014/02/13 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript