使用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 保存文件到本地实现方法
Nov 29 Javascript
JS中setTimeout()的用法详解
Apr 14 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
May 27 Javascript
JavaScript把数组作为堆栈使用的方法
Mar 20 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 Javascript
深入理解jquery中的事件与动画
May 24 Javascript
微信小程序 swiper组件详解及实例代码
Oct 25 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 jQuery
vue使用axios跨域请求数据问题详解
Oct 18 Javascript
Vue全局分页组件的实现代码
Aug 10 Javascript
vue+element表格导出为Excel文件
Sep 26 Javascript
Vue关于组件化开发知识点详解
May 13 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
如何去掉文章里的 html 语法
2006/10/09 PHP
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
javascript 写类方式之六
2009/07/05 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
python语言中with as的用法使用详解
2018/02/23 Python
简单实现python聊天程序
2018/04/01 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
在python image 中实现安装中文字体
2020/05/16 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
《雷雨》教学反思
2014/02/20 职场文书
大班亲子运动会方案
2014/06/10 职场文书
三严三实学习心得体会
2014/10/13 职场文书
商铺门面租房协议书
2014/10/21 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
MongoDB使用场景总结
2022/02/24 MongoDB
浅谈Redis的事件驱动模型
2022/05/30 Redis