使用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基础知识大全 便于大家学习,也便于我自己查看
Aug 17 Javascript
jQuery实现用户注册的表单验证示例
Aug 28 Javascript
JavaScript保留两位小数的2个自定义函数
May 05 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
Jun 24 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
微信小程序 template模板详解及实例
Feb 21 Javascript
微信小程序实现文字跑马灯效果
May 26 Javascript
JavaScript实现一个简易的计算器实例代码
May 10 Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 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 广告调用类代码(支持Flash调用)
2011/08/11 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
webpack之devtool详解
2018/02/10 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
pyside写ui界面入门示例
2014/01/22 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
Python语言快速上手学习方法
2018/12/14 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
AJax面试题
2014/11/25 面试题
竞争性谈判邀请书
2014/02/06 职场文书
银行批评与自我批评
2014/02/10 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
高一新生军训方案
2014/05/12 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
投诉信回复范文
2015/07/03 职场文书
golang 实现Location跳转方式
2021/05/02 Golang