• 技术文章 >web前端 >js教程

    使用javascript控制cookie显示和隐藏背景图_javascript技巧

    2016-05-16 17:00:19原创632
    每当重大节日期间,各大主流网站首页会披上节日的盛装,设计者一般会使用大幅背景图片来获得更好的视觉冲击效果,当然,也要考虑到有些用户不习惯这大背景图,那么在背景图上放置“关闭”按钮是有必要的,用户只要点击“关闭背景”按钮,大幅背景图将会消失。

    我们使用javascript来控制背景图片的显示和隐藏,当点击关闭按钮时,控制CSS使页面不加载背景图,同时记录COOKIE相关参数,并设置cookie的有效期,那么在cookie有效期内刷新页面,是不会再加载背景图的,如果cookie失效,则又会重新加载背景图片。

    HTML

    一般背景图片的关闭按钮都是放在页面头部的,我们在页面的顶部放置关闭背景的按钮,当然这个按钮是做好的图片。

    复制代码 代码如下:




    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;
    }
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:cookie 隐藏背景
    上一篇:javascript获取web应用根目录的方法_javascript技巧 下一篇:jquery选择checked在ie8普通模式下的问题_jquery
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 什么是消息队列?node中如何使用消息队列?• JavaScript的Symbol类型、隐藏属性及全局注册表详解• 18个常见angular面试题(附答案分析)• 浅析IDEA中如何开发Angular• 整理总结JavaScript常见的BOM操作
    1/1

    PHP中文网