使用javascript控制cookie显示和隐藏背景图 |
本文标签:cookie,隐藏背景 每当重大节日期间,各大主流网站首页会披上节日的盛装,设计者一般会使用大幅背景图片来获得更好的视觉冲击效果,当然,也要考虑到有些用户不习惯这大背景图,那么在背景图上放置“关闭”按钮是有必要的,用户只要点击“关闭背景”按钮,大幅背景图将会消失 。 我们使用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来加载背景图片 。 复制代码 代码如下: $(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; } |