使用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实现禁止后退的方法
Dec 27 Javascript
防止按钮在短时间内被多次点击的方法
Mar 10 Javascript
将HTML格式的String转化为HTMLElement的实现方法
Aug 07 Javascript
js实现的简洁网页滑动tab菜单效果代码
Aug 24 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
May 05 Javascript
jQuery中$.each()函数的用法引申实例
May 12 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
Bootstrap 网格系统布局详解
Mar 19 Javascript
javascript中UMD规范的代码推演
Aug 29 Javascript
JS中判断字符串存在和非空的方法
Sep 12 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
Jun 20 Javascript
关于Javascript闭包与应用的详解
Apr 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
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
分析在Python中何种情况下需要使用断言
2015/04/01 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
PHP如何调用MYSQL存储过程
2014/05/30 面试题
教师党员自我评议不足范文
2014/10/19 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python