从零开始学_JavaScript_系列(27)——myblog的优化【1】样式表分离、localStorage

myblog的建立参照:

http://blog.csdn.net/qq20004604/article/details/52019904

本来打算今天写的轮播图,不过突然看到localStorage,一时兴起先搞这个了。下次再写轮播图吧


1】全局样式和独立样式的分离

我将样式表分割为全局表和独立表;

 

l 在全局的样式里,是一些通用的样式,他们的特点是复用率高,例如设置隐藏效果的.displayNONE,他只有一条属性那就是display:none;加载全局样式时,样式表在head部分。

l 在独立的样式里,是一些当前页面专有的样式,其加载链接时放在jade的对应的模块里面进行加载。为了防止污染,将当前jade里的dom结点其尽量在同一个div下面,这个div主要用于使用后代样式选择器识别。

 

2】初步调节:

index.jade

extends layout
block content
    link(rel='stylesheet', href='./stylesheets/index.css')
    div.Blog-index
        div.hero-unit
            h1  #{index.title}
            p   #{index.description}
                br
                br
                //修改以下部分
                if(!user())
                    br
                    br
                    a.btn.btn-primary.btn-large(href="/login")  #{index.login}
                    a.btn.btn-large(href="/reg")    #{index.regNow}
                else
                    textarea#textarea.uneditable-input
                    button#postBlog.btn.btn-large #{index.submit}
                    button#clearBlog.btn.btn-large #{index.emptyInput}
                div#submitError.alert.alert-error.displayNONE.myalert
                div#submitSuccess.alert.alert-success.displayNONE

        div.row.content#content
            div.span4
                h2  烟雨江南说
                p   当欲望没有了枷锁,就没有了向前的路
                p   只有转左,或者向右
                p   左边是地狱,右边也是地狱
            div.span4
                h2  烟雨江南说
                p   那些都是极好极好的
                p   可是我偏偏不喜欢
            div.span4
                h2  烟雨江南说
                p   我不怕傻
                p   只怕
                p   遇不到
                p   可以让我变傻的人
            div.span4
                h2  烟雨江南说
                p   人在年轻的时候总会有些莫名的坚持,
                p   并且以此感动着自己,
                p   却时常会在不经意间让真正重要的东西从指间流走。
            div.span4
                h2  烟雨江南说
                p   记忆真是一种奇怪的东西,
                p   有时候会涤荡所有的苦难,只留下温情,
                p   有时候却磨灭掉曾有的欢乐,唯剩下苍白和丑陋。
            div.span4
                h2  烟雨江南说
                p   那存在的,都是幻影。
                p   那永恒的,终将毁灭。
                p   世界万物,缤纷色彩,都是被蒙蔽的人心罢了。
            div.span4
                h2  烟雨江南说
                p   诸神以真相示人,而世人却视而不见
            div.span4
                h2  烟雨江南说
                p   只有绵羊会向狮子要求平等,
                p   而狮子们从来不会这样想。
            div.span4
                h2  烟雨江南说
                p   愿迷途的旅人,从此得享安息。
                p   因理想而不朽,因归返而救赎。
        div#scrollToFoot 滚动到底部然后加载内容

 

layout.jade

doctype html
html
    head
        title #{layout.title}
        link(rel='stylesheet', href='./stylesheets/bootstrap.min.css')
        link(rel='stylesheet', href='./stylesheets/bootstrap-responsive.min.css')
        link(rel='stylesheet', href='./stylesheets/global.css')
        script(type="text/javascript",src='javascripts/jq.js')
        script(type="text/javascript",src='javascripts/bootstrap.min.js')
        script(type="text/javascript",src='javascripts/blog.js')
    body
        div.navbar.navbar-fixed-top
            div.navbar-inner
                div.container
                    a.btn.btn-navbar(data-toggle="collapse",data-target=".nav-collapse")
                        span.icon-bar
                        span.icon-bar
                        span.icon-bar
                    a.brand(href="/") #{layout.topTitle}
                    div.nav-collapse
                        ul.nav
                            li
                                a(href="/") #{layout.indexButton}
                            //以下是修改后的部分
                            if(user())
                                li
                                    a(href="/logout") #{layout.logout}
                            else
                                li
                                    a(href="/login") #{layout.login}
                                li
                                    a(href="/reg") #{layout.reg}
                            li
                                a(href="/language") #{layout.language}
                    span.brand(style='float:right') #{layout.foot}
        div#contrainer.container
            - var ErrorAlert = err()
            if(ErrorAlert)
                div.alert.alert-error #{ErrorAlert}
            block content
            hr
        fotter
            p   #{layout.foot}

global.css

body {
    padding-top: 60px;
    padding-botom: 40px;
}

.displayNONE {
    display: none;
}

fotter p {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #aaa;
    font-size: 18px;
    text-align: center;
}

index.css

.Blog-index #textarea {
    resize: none;
    width: 300px;
    height: 100px;
    cursor: text;
}

.Blog-index #postBlog {
    position: relative;
    left: 20px;
    vertical-align: top;
}

.Blog-index #clearBlog {
    position: relative;
    left: -90px;
    top: 27px;
    width: 110px;
    height: 44px;
}

.Blog-index .myalert {
    position: absolute;
}

.Blog-index #scrollToFoot {
    border: 1px solid #ccc;
    text-align: center;
    font-size: 18px;
    padding: 20px 0;
}


.Blog-index .row {
    color: #555;
}


 

样式目前依然和之前保持一致

 

 

3】添加localStorage用于计数用户第几次访问本网站

简单介绍localStorage:他类似cookie,用于存储数据。他的特点是:

①存储于本地,不发送到服务器;

②使用简单,localStorage.变量名   即可

③清除历史记录后被清空;

④浏览器关闭后依然存在。

HTML5新增

因此,只需要更改前端代码即可。

修改blog.js

$(document).ready(function () {
    //根据url,设置高亮
    if (window.location.pathname === '/') {
        $(".nav-collapse .nav li:first-child").addClass("active");
    }
    else if (window.location.pathname === '/login') {
        $(".nav-collapse .nav li:nth-child(2)").addClass("active");
    }
    else if (window.location.pathname === '/reg') {
        $(".nav-collapse .nav li:nth-child(3)").addClass("active");
    }


    //给原生的Date添加一个方法,传递的参数是格式
    Date.prototype.Format = function (fmt) { //author: meizz
        var obj = {
            "M+": this.getMonth() + 1, //月份
            "d+": this.getDate(), //日
            "H+": this.getHours(), //小时
            "m+": this.getMinutes(), //分
            "s+": this.getSeconds(), //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt))
            fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var key in obj)
            if (new RegExp("(" + key + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (obj[key]) : (("00" + obj[key]).substr(("" + obj[key]).length)));
        return fmt; //返回值是格式化好之后的时间
    }

    var testLocalStorage = function () {    //鉴别浏览器是否支持localStorage,如果支持则返回true
        try {
            return 'localStorage' in window && window['localStorage'] !== null;
        } catch (e) {
            return false;
        }
    }
    if (testLocalStorage()) {
        if (!localStorage.visits) {
            localStorage.visits = 1;
        } else {
            localStorage.visits++;
        }

        $("fotter p")[0].innerHTML += "<br>在上次清除历史记录后,localStorage技术告诉我,你是第" + localStorage.visits + "次打开本页面。" + (localStorage.lastVisitTime ? ("你上次访问时间是:" +
            localStorage.lastVisitTime) : (""));
        localStorage.lastVisitTime = new Date().Format("yyyy-MM-dd HH:mm:ss");
    }
})


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值