使用javascript控制cookie顯示和隱藏背景圖

來源:互聯網
上載者:User

使用javascript控制cookie顯示和隱藏背景圖

 本文主要介紹了使用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,"5b8b4f53", 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; 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.