每當重大節日期間,各大主流網站首頁會披上節日的盛裝,設計者一般會使用大幅背景圖片來獲得更好的視覺沖擊效果,當然,也要考慮到有些用戶不習慣這大背景圖,那么在背景圖上放置“關閉”按鈕是有必要的,用戶只要點擊“關閉背景”按鈕,大幅背景圖將會消失。
我們使用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;
}