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事件_动力节点Java学院整理
Jul 05 jQuery
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 jQuery
JQuery元素快速查找与操作
Apr 22 jQuery
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
IE8中jQuery.load()加载页面不显示的原因
Nov 15 jQuery
jQuery层叠选择器用法实例分析
Jun 28 jQuery
jquery实现烟花效果(面向对象)
Mar 10 jQuery
jQuery AJAX应用实例总结
May 19 jQuery
使用jquery实现轮播图效果
Jan 02 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
帅气的琦玉老师
2020/03/02 日漫
德生H-501的评价与改造
2021/03/02 无线电
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
使用JQuery进行跨域请求
2010/01/25 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
佳能德国网上商店:Canon德国
2017/03/18 全球购物
网上卖盒饭创业计划书
2014/01/26 职场文书
护士个人自我鉴定
2014/03/24 职场文书
租房协议书
2014/04/10 职场文书
任命书范本大全
2014/06/06 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
小学教师教学随笔
2015/08/14 职场文书
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电