使用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 相关文章推荐
xml分页+ajax请求数据源+dom取结果实例代码
Oct 31 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
解决JS中乘法的浮点错误的方法
Jan 03 Javascript
js的touch事件的实际引用
Oct 13 Javascript
Bootstrap每天必学之弹出框(Popover)插件
Apr 25 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
js的函数的按值传递参数(实例讲解)
Nov 16 Javascript
微信小程序显示下拉列表功能【附源码下载】
Dec 12 Javascript
浅谈VUE监听窗口变化事件的问题
Feb 24 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
Mar 08 Javascript
javascript中layim之查找好友查找群组
Feb 06 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边学边教》(01.开篇――准备工作)
2006/12/13 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
浅谈Python中的闭包
2015/07/08 Python
利用Python爬取可用的代理IP
2016/08/18 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
为什么使用接口?
2014/08/13 面试题
人事主管岗位职责范本
2013/12/04 职场文书
2014年党支部承诺书
2014/05/30 职场文书
意向书范本
2014/07/29 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers