使用javascript控制cookie顯示和隱藏背景圖
每當(dāng)重大節(jié)日期間,各大主流網(wǎng)站首頁(yè)會(huì)披上節(jié)日的盛裝,設(shè)計(jì)者一般會(huì)使用大幅背景圖片來(lái)獲得更好的視覺(jué)沖擊效果,當(dāng)然,也要考慮到有些用戶(hù)不習(xí)慣這大背景圖,那么在背景圖上放置“關(guān)閉”按鈕是有必要的,用戶(hù)只要點(diǎn)擊“關(guān)閉背景”按鈕,大幅背景圖將會(huì)消失。
我們使用javascript來(lái)控制背景圖片的顯示和隱藏,當(dāng)點(diǎn)擊關(guān)閉按鈕時(shí),控制CSS使頁(yè)面不加載背景圖,同時(shí)記錄COOKIE相關(guān)參數(shù),并設(shè)置cookie的有效期,那么在cookie有效期內(nèi)刷新頁(yè)面,是不會(huì)再加載背景圖的,如果cookie失效,則又會(huì)重新加載背景圖片。
HTML
一般背景圖片的關(guān)閉按鈕都是放在頁(yè)面頭部的,我們?cè)陧?yè)面的頂部放置關(guān)閉背景的按鈕,當(dāng)然這個(gè)按鈕是做好的圖片。
<div id="top">
<em id="close_btn" title="關(guān)閉背景"></em>
</div>
CSS
還需要準(zhǔn)備大背景圖片,我們從網(wǎng)上找張大背景圖拿來(lái)用,用CSS做簡(jiǎn)單的頁(yè)面布局。
*{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后,頁(yè)面還沒(méi)有什么效果,我們需要使用javascript來(lái)加載背景圖片。
Javascript
當(dāng)?shù)谝淮渭虞d頁(yè)面時(shí)(這時(shí)還沒(méi)有設(shè)置cookie等),當(dāng)然要把背景圖片加載,顯示完整的頁(yè)面效果。當(dāng)我們點(diǎn)擊“關(guān)閉”按鈕時(shí),這個(gè)時(shí)候Javascript會(huì)把頁(yè)面已經(jīng)加載的背景圖片干掉,即不顯示出來(lái),并且設(shè)置cookie,通過(guò)cookie的過(guò)期時(shí)間來(lái)控制大背景圖片是否顯示。即當(dāng)下次刷新頁(yè)面時(shí),如果cookie未過(guò)期,則不會(huì)加載大背景圖片,反之則加載大背景圖片,請(qǐng)看代碼:
$(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");
}
//點(diǎn)擊關(guān)閉
$("#close_btn").click(function(){
$("body,html").css("background","none");
$("#close_btn").hide();
setCookie("mainbg","0");
});
})
很顯然,我們是通過(guò)設(shè)置頁(yè)面元素的CSS背景background屬性來(lái)控制背景圖的加載,并且通過(guò)getCookie()和setCookie()兩個(gè)自定義函數(shù)來(lái)讀取和設(shè)置cookie的。
//設(shè)置cookie
function setCookie(name,value){
var exp = new Date();
exp.setTime(exp.getTime() + 1*60*60*1000);//有效期1小時(shí)
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//取cookies函數(shù)
function getCookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
- 一個(gè)可以得到元素真實(shí)的背景顏色的javascript腳本
- javascript背景時(shí)鐘實(shí)現(xiàn)方法
- javascript隨機(jī)顯示背景圖片的方法
- JavaScript讓網(wǎng)頁(yè)出現(xiàn)漸隱漸顯背景顏色的方法
- JavaScript動(dòng)態(tài)修改背景顏色的方法
- javascript實(shí)現(xiàn)隨時(shí)變化著的背景顏色
- JavaScript生成的動(dòng)態(tài)下雨背景效果實(shí)現(xiàn)方法
- JavaScript實(shí)現(xiàn)更改網(wǎng)頁(yè)背景與字體顏色的方法
- Javascript簡(jiǎn)單改變表單元素背景的方法
相關(guān)文章
JS實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)鏈接的幾種方式匯總
這篇文章主要介紹了JS實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)鏈接的幾種方式,簡(jiǎn)單總結(jié)了幾種頁(yè)面跳轉(zhuǎn)功能的實(shí)現(xiàn),有使用js跳轉(zhuǎn)頁(yè)面,返回上一次預(yù)覽界面及button按鈕添加事件跳轉(zhuǎn),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-01-01JavaScript?對(duì)象新增方法defineProperty與keys的使用說(shuō)明
這篇文章主要介紹了JavaScript對(duì)象新增方法defineProperty與keys的使用說(shuō)明,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09用Javascript實(shí)現(xiàn)Windows任務(wù)管理器的代碼
在Windows系統(tǒng)上,自從98系統(tǒng)以來(lái)就提供了腳本宿主(Windows Scripting Host 簡(jiǎn)稱(chēng)WSH)的功能,WSH可以加載并運(yùn)行JS和VBS腳本,并支持調(diào)用系統(tǒng)的COM組件,在COM組件的支持下腳本可以輕松實(shí)現(xiàn)非常強(qiáng)大的功能2012-03-03微信小程序適配iphoneX的實(shí)現(xiàn)方法
這篇文章主要介紹了微信小程序適配iphoneX的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09javascript中substring()、substr()、slice()的區(qū)別
在js中字符截取函數(shù)有常用的三個(gè)slice()、substring()、substr()了,下面我來(lái)給大家介紹slice()、substring()、substr()函數(shù)在字符截取時(shí)的一些用法與區(qū)別吧。2015-08-08JS實(shí)現(xiàn)的Object數(shù)組去重功能示例【數(shù)組成員為Object對(duì)象】
這篇文章主要介紹了JS實(shí)現(xiàn)的Object數(shù)組去重功能,可實(shí)現(xiàn)針對(duì)數(shù)組成員為Object對(duì)象的去重復(fù)功能,涉及javascript數(shù)組元素遍歷、屬性判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02