源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 162|回复: 12

[JavaScript] 使用javascript控制cookie显示和隐藏背景图

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2014-2-12 10:51:22 | 显示全部楼层 |阅读模式
本文主要介绍了使用javascript来控制背景图片的显示和隐藏,当点击关闭按钮时,控制CSS使页面不加载背景图,同时记录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来加载背景图片。
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;
}

回复

使用道具 举报

1

主题

1万

回帖

93

积分

注册会员

Rank: 2

积分
93
发表于 2022-9-10 08:34:26 | 显示全部楼层
源码源码源码源码源码源码源码源码源码源码源码源码源码
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

79

积分

注册会员

Rank: 2

积分
79
发表于 2022-9-20 10:55:34 | 显示全部楼层
激动人心,无法言表!
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

303

积分

中级会员

Rank: 3Rank: 3

积分
303
发表于 2023-4-16 15:34:51 | 显示全部楼层
很不错的源码论坛
回复 支持 反对

使用道具 举报

9

主题

2万

回帖

420

积分

中级会员

Rank: 3Rank: 3

积分
420
发表于 2023-11-19 18:56:00 | 显示全部楼层
为全额万千瓦
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-11-26 00:54:16 | 显示全部楼层
终于找到了,我擦
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

115

积分

注册会员

Rank: 2

积分
115
发表于 2024-3-20 13:00:18 | 显示全部楼层
看到这帖子真是高兴!
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

156

积分

注册会员

Rank: 2

积分
156
发表于 2024-8-31 23:30:31 | 显示全部楼层
我要金豆金豆金豆
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2024-9-5 15:57:44 | 显示全部楼层
啦啦啦啦啦德玛西亚
回复 支持 反对

使用道具 举报

20

主题

6042

回帖

100

积分

注册会员

Rank: 2

积分
100
发表于 2024-9-10 10:18:25 | 显示全部楼层
搞个免费的用用
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-23 16:46 , Processed in 0.072696 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表