使用javascript控制cookie显示和隐藏背景图


Posted in Javascript onFebruary 12, 2014

每当重大节日期间,各大主流网站首页会披上节日的盛装,设计者一般会使用大幅背景图片来获得更好的视觉冲击效果,当然,也要考虑到有些用户不习惯这大背景图,那么在背景图上放置“关闭”按钮是有必要的,用户只要点击“关闭背景”按钮,大幅背景图将会消失。

我们使用javascript来控制背景图片的显示和隐藏,当点击关闭按钮时,控制CSS使页面不加载背景图,同时记录COOKIE相关参数,并设置cookie的有效期,那么在cookie有效期内刷新页面,是不会再加载背景图的,如果cookie失效,则又会重新加载背景图片。

HTML

一般背景图片的关闭按钮都是放在页面头部的,我们在页面的顶部放置关闭背景的按钮,当然这个按钮是做好的图片。

<div id="top"> 
    <em id="close_btn" title="关闭背景"></em> 
</div>

CSS

还需要准备大背景图片,我们从网上找张大背景图拿来用,用CSS做简单的页面布局。

 

*{margin:0; padding:0} 
body{font:12px/18px "Microsoft Yahei",Tahoma,Arial,Verdana,"\5b8b\4f53", sans-serif;} 
#top{clear:both;width:1000px;height:60px;margin:0 auto;overflow:hidden;position:relative;} 
#close_btn{width:60px;height:20px;position:absolute;right:0;bottom:25px;cursor:pointer; 
display:block;z-index:2;}

部署完了css后,页面还没有什么效果,我们需要使用javascript来加载背景图片。
Javascript
当第一次加载页面时(这时还没有设置cookie等),当然要把背景图片加载,显示完整的页面效果。当我们点击“关闭”按钮时,这个时候Javascript会把页面已经加载的背景图片干掉,即不显示出来,并且设置cookie,通过cookie的过期时间来控制大背景图片是否显示。即当下次刷新页面时,如果cookie未过期,则不会加载大背景图片,反之则加载大背景图片,请看代码:

 

$(function(){ 
    if(getCookie("mainbg")==0){ 
        $("body,html").css("background","none"); 
        $("#close_btn").hide(); 
    }else{ 
        $("body").css("background","url(images/body_bg.jpg)) no-repeat 50% 0"); 
        $("html").css("background","url(images/html_bg.jpg) repeat-x 0 0"); 
        $("#close_btn").show().css("background","url(images/close_btn.jpg) no-repeat"); 
    } 
    //点击关闭 
    $("#close_btn").click(function(){ 
        $("body,html").css("background","none"); 
        $("#close_btn").hide(); 
        setCookie("mainbg","0"); 
    }); 
})

很显然,我们是通过设置页面元素的CSS背景background属性来控制背景图的加载,并且通过getCookie()和setCookie()两个自定义函数来读取和设置cookie的。

 

//设置cookie 
function setCookie(name,value){ 
    var exp = new Date();  
    exp.setTime(exp.getTime() + 1*60*60*1000);//有效期1小时 
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
} 
//取cookies函数 
function getCookie(name){ 
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); 
    if(arr != null) return unescape(arr[2]); return null; 
}
Javascript 相关文章推荐
Javascript this关键字使用分析
Oct 21 Javascript
Webkit的跨域安全问题说明
Sep 13 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
Mar 04 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
整理Javascript函数学习笔记
Dec 01 Javascript
jQuery插件制作的实例教程
May 16 Javascript
从setTimeout看js函数执行过程
Dec 19 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
React Component存在的几种形式详解
Nov 06 Javascript
小程序绑定用户方案优化小结
May 15 Javascript
使用vue实现通过变量动态拼接url
Jul 22 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 #Javascript
js post提交调用方法
Feb 12 #Javascript
JQuery中操作Css样式的方法
Feb 12 #Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
Feb 12 #Javascript
js判断设备是否为PC并调整图片大小
Feb 12 #Javascript
Jquery Uploadify上传带进度条的简单实例
Feb 12 #Javascript
js弹出div并显示遮罩层
Feb 12 #Javascript
You might like
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
php教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
python中数据库like模糊查询方式
2020/03/02 Python
python实现简单学生信息管理系统
2020/04/09 Python
python代码中怎么换行
2020/06/17 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
新闻专业个人自我评价
2013/09/21 职场文书
财务出纳员岗位职责
2013/11/26 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
物资采购方案
2014/06/12 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
健康教育主题班会
2015/08/14 职场文书