使用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 相关文章推荐
CheckBox 如何实现全选?
Jun 23 Javascript
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
Apr 01 Javascript
extjs 分页使用jsp传递数据示例
Jul 29 Javascript
alert出数组中的随即值代码
Sep 25 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
Jan 07 Javascript
Javascript实现网络监测的方法
Jul 31 Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 Javascript
Vue v2.5 调整和更新不完全问题
Oct 24 Javascript
简述ES6新增关键字let与var的区别
Aug 23 Javascript
详解Vscode中使用Eslint终极配置大全
Nov 08 Javascript
JS实现简单的表格增删
Jan 16 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
Aug 10 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
加强版phplib的DB类
2008/03/31 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
js 页面输出值
2008/11/30 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
Python的Django框架中的数据库配置指南
2015/07/17 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
大韩航空官方网站:Korean Air
2017/10/25 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
小学门卫岗位职责
2013/12/17 职场文书
迎八一活动主题
2014/01/31 职场文书
国际会计专业求职信
2014/08/04 职场文书
老兵退伍标语
2014/10/07 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书