国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Angularjs與weui的握手

winterdawn / 2690人閱讀

摘要:控制器顯示與隱藏時(shí)的動(dòng)畫,使用中的服務(wù)到此,導(dǎo)航和一個(gè)功能演示的頁(yè)面就已經(jīng)實(shí)現(xiàn)了。由于大部分是靜態(tài)的,沒(méi)有動(dòng)態(tài),所以只需要將官方的演示照搬即可。更希望能得到您的幫助與指正。

引子

自從開通了sf的文章專欄,總想在這個(gè)專欄里寫些自己的東西。不久前,微信推出了自己的一套UI,我看有很多開發(fā)者將其套用在了一些前端框架中,比如react、vue。最近自己在學(xué)習(xí)Angularjs,所以,也想把這個(gè)UI整合到這個(gè)框架,這幾天試了一下,簡(jiǎn)單的套用了一個(gè)功能,現(xiàn)在分享給大家,分離做的不好,請(qǐng)高手指點(diǎn)。

適合讀者

有一定的Angularjs基礎(chǔ),并且了解ngRoute、ngAnimate的人群。

包含文件

整合的時(shí)候,參照官方的演示頁(yè)面,自己也做了一個(gè)演示頁(yè)面,完全使用Angularjs做的,沒(méi)有引用其它框架。下面先說(shuō)明一下引入的文件。

使用angular.min.js 1.4.9

使用angular-route.min.js 1.4.9

使用angular-animate.min.js 1.4.9

使用weui.min.css 0.4.0

一開始想與官方的演示頁(yè)面一樣做一個(gè)單頁(yè)面的,開發(fā)之后發(fā)現(xiàn),把所有內(nèi)容放到一個(gè)文件里顯得雜亂,所以,使用了Angularjs的路由功能,把各個(gè)小功能獨(dú)立成頁(yè)面,在需要時(shí)加載進(jìn)來(lái)。此處使用模板加載功能來(lái)實(shí)現(xiàn)。于是,導(dǎo)航頁(yè)面代碼就顯示很干凈,如果想要使用哪部分的功能代碼,直接使用相對(duì)應(yīng)的html頁(yè)面及js腳本文件即可,方便、快捷。

下是導(dǎo)航頁(yè)面的代碼:





    
    
    WeUI
    




    
    

以上代碼大部分來(lái)自官方的首頁(yè)代碼,由于要使用Angularjs,所以增加了相應(yīng)的屬性,包括ngApp,ngController,ngClick,ngIf以及顯示功能演示頁(yè)面的ngView。

代碼中,ngClick中使用了showBlock函數(shù),參數(shù)是當(dāng)前點(diǎn)擊的功能字符串,這個(gè)函數(shù)的參數(shù)在使用路由功能后,沒(méi)有使用,僅僅是在此函數(shù)中增加了隱藏與顯示導(dǎo)航部分以及功能演示部分的代碼,詳情請(qǐng)查看下面的腳本代碼。

angular.module("weuiapp", ["ngAnimate", "ngRoute"])
    .config(function($routeProvider) {
        $routeProvider
            .when("/", {
                controller: "home",
                templateUrl: ""
            })
            .when("/button",{
                controller: "button",
                templateUrl: "button.html"
            })
            .when("/cell", {
                controller: "cell",
                templateUrl: "cell.html"
            })
            .when("/toast", {
                controller: "toast",
                templateUrl: "toast.html"
            })
            .when("/msg", {
                controller: "msg",
                templateUrl: "msg.html"
            })
            .when("/article", {
                controller: "article",
                templateUrl: "article.html"
            })
            .when("/icons", {
                controller: "icons",
                templateUrl: "icons.html"
            })
            .when("/panel", {
                controller: "panel",
                templateUrl: "panel.html"
            })
            .otherwise({
                redirectTo: "/"
            })

    })
    .controller("home", function($scope) {
        $scope.homeShow = true;
        $scope.viewShow = false;

        $scope.showBlock = function() {
            $scope.homeShow = false;
            $scope.viewShow = true;
        }
    })
    .controller("toast", ["$scope", "$interval", toast])
    .animation(".aweui-show", ["$animateCss", toastAnimate])
    .animation(".home", ["$animateCss", function($animateCss) {
        return {
            enter: function(element, doneFn) {
                return $animateCss(element, {
                    from: { left: "100%", top: 0, opacity: 0 },
                    to: { left: 0, top: 0, opacity: 1 },
                    duration: .3
                });
            },
            leave: function(element, doneFn) {
                return $animateCss(element, {
                    from: { left: 0, top: 0, opacity: 1 },
                    to: { left: "-100%", top: 0, opacity: 0 },
                    duration: .3
                });
            }
        }
    }])
    .animation(".view", ["$animateCss", function($animateCss) {
        return {
            enter: function(element, doneFn) {
                return $animateCss(element, {
                    from: { left: "100%", top: 0, opacity: 0 },
                    to: { left: 0, top: 0, opacity: 1 },
                    duration: .3
                });
            },
            leave: function(element, doneFn) {
                return $animateCss(element, {
                    from: { left: 0, top: 0, opacity: 1 },
                    to: { left: "-100%", top: 0, opacity: 0 },
                    duration: .3
                });
            }
        }
    }])
$scope.showBlock = function() {
    $scope.homeShow = false;
    $scope.viewShow = true;
}

這一段便是函數(shù)要實(shí)現(xiàn)的功能代碼,分別控制變量homeShow以及viewShow來(lái)實(shí)現(xiàn)導(dǎo)航與功能演示兩部分的顯示與隱藏。

.animation(".home", ["$animateCss", function($animateCss) {
    return {
        enter: function(element, doneFn) {
            return $animateCss(element, {
                from: { left: "100%", top: 0, opacity: 0 },
                to: { left: 0, top: 0, opacity: 1 },
                duration: .3
            });
        },
        leave: function(element, doneFn) {
            return $animateCss(element, {
                from: { left: 0, top: 0, opacity: 1 },
                to: { left: "-100%", top: 0, opacity: 0 },
                duration: .3
            });
        }
    }
}])

以上是導(dǎo)航部分顯示時(shí)的動(dòng)畫效果代碼。導(dǎo)航部分初始化為絕對(duì)定位,讓其在消失前先做一個(gè)向左移出顯示區(qū)域,并且漸隱的動(dòng)畫。當(dāng)查看完功能演示,回到導(dǎo)航時(shí),進(jìn)行動(dòng)畫反轉(zhuǎn)。這里使用的ngAnimate的$animateCss服務(wù),并且使用了此服務(wù)提供的進(jìn)入事件enter以及移出事件leave。其它的動(dòng)畫功能與其相同。

$routeProvider
    .when("/", {
        controller: "home",
        templateUrl: ""
    })
    .when("/button",{
        controller: "button",
        templateUrl: "button.html"
    })
    .when("/cell", {
        controller: "cell",
        templateUrl: "cell.html"
    })
    .when("/toast", {
        controller: "toast",
        templateUrl: "toast.html"
    })
    .when("/msg", {
        controller: "msg",
        templateUrl: "msg.html"
    })
    .when("/article", {
        controller: "article",
        templateUrl: "article.html"
    })
    .when("/icons", {
        controller: "icons",
        templateUrl: "icons.html"
    })
    .when("/panel", {
        controller: "panel",
        templateUrl: "panel.html"
    })
    .otherwise({
        redirectTo: "/"
    })

這是路由服務(wù),對(duì)應(yīng)html中的a標(biāo)簽href屬性,所以,此程序中沒(méi)有使用showBlock函數(shù)的參數(shù),已經(jīng)沒(méi)有用處了,此函數(shù)只是為了增加了動(dòng)態(tài)效果而創(chuàng)造的。

下面,再來(lái)看看功能演示部分的頁(yè)面代碼。

Toast

已完成

數(shù)據(jù)加載中

這就是加載等待提示功能的演示頁(yè)面代碼,一共兩種樣式,其一,顯示文字;其二,有一個(gè)加載等待的動(dòng)畫并且有提示文字顯示。

頁(yè)面有兩個(gè)按鈕,功能就是分別呼出這兩種樣式,每種樣式呼出后,停留3秒后自動(dòng)消失。

在導(dǎo)航頁(yè)面的js中,有一個(gè)控制器和一個(gè)動(dòng)畫函數(shù)調(diào)用了此功能頁(yè)面腳本代碼中的函數(shù),分別是控制器函數(shù)toast()以及動(dòng)畫函數(shù)toastAnimate()。腳本文件的代碼如下。

//toast控制器
function toast($scope, $interval) {
    $scope.toastHide = 0;
    $scope.loadingToastHide = 0;

    $scope.showToast = function() {
        $scope.toastHide = 1;

        $interval(function() {
            $scope.toastHide = 0;
        }, 3000, 1);
    }

    $scope.showLoadingToast = function() {
        $scope.loadingToastHide = 1;

        $interval(function() {
            $scope.loadingToastHide = 0;
        }, 3000, 1);
    }
}

//顯示與隱藏時(shí)的動(dòng)畫,使用ngAnimate中的$animateCss服務(wù)
function toastAnimate($animateCss) {
    return {
        enter: function(element, doneFn) {
            return $animateCss(element, {
                from: { opacity: 0 },
                to: { opacity: 1 },
                duration: .3
            });
        },
        leave: function(element, doneFn) {
            return $animateCss(element, {
                from: { opacity: 1 },
                to: { opacity: 0 },
                duration: .3
            });
        }
    }
}

到此,導(dǎo)航和一個(gè)功能演示的頁(yè)面就已經(jīng)實(shí)現(xiàn)了。由于大部分UI是靜態(tài)的,沒(méi)有動(dòng)態(tài),所以只需要將官方的演示照搬即可。需要增加動(dòng)態(tài)代碼的,現(xiàn)在已只做了這一個(gè),后續(xù)還會(huì)陸續(xù)增加至完成。

代碼開源地址

代碼已經(jīng)上傳至github上,感興趣的朋友可以點(diǎn)擊查看,代碼同時(shí)也上傳到個(gè)人的服務(wù)器上,說(shuō)明中有鏈接地址,可以直接點(diǎn)擊查看效果。

由于項(xiàng)目剛剛成立,很多東西沒(méi)有完善,還有很多不如意的地方,請(qǐng)諒解。更希望能得到您的幫助與指正。

項(xiàng)目地址:https://github.com/limeng0403/Angularjs-weui

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/78895.html

相關(guān)文章

  • 如何寫一份好前端面試簡(jiǎn)歷?

    摘要:簡(jiǎn)歷的存在只有一個(gè)目的幫你約到面試。即使你通過(guò)其他方式獲得了面試,當(dāng)你入職的時(shí)候,還是要有這么一份紙質(zhì)簡(jiǎn)歷的,所以不要想著偷懶。在該系統(tǒng)上線后,前端性能從提升到,服務(wù)器由臺(tái)減少到臺(tái)通過(guò)量化的數(shù)字來(lái)增強(qiáng)可信度。 簡(jiǎn)歷的本質(zhì) 原文地址在寫簡(jiǎn)歷之前,我們必須清楚的了解一件事情,那就是簡(jiǎn)歷是什么?它不是人生履歷,不是項(xiàng)目清單,也不是技能大放送。簡(jiǎn)歷的存在只有一個(gè)目的 —— 幫你約到面試。只要能...

    winterdawn 評(píng)論0 收藏0
  • 如何寫一份好前端面試簡(jiǎn)歷?

    摘要:簡(jiǎn)歷的存在只有一個(gè)目的幫你約到面試。即使你通過(guò)其他方式獲得了面試,當(dāng)你入職的時(shí)候,還是要有這么一份紙質(zhì)簡(jiǎn)歷的,所以不要想著偷懶。在該系統(tǒng)上線后,前端性能從提升到,服務(wù)器由臺(tái)減少到臺(tái)通過(guò)量化的數(shù)字來(lái)增強(qiáng)可信度。 簡(jiǎn)歷的本質(zhì) 原文地址在寫簡(jiǎn)歷之前,我們必須清楚的了解一件事情,那就是簡(jiǎn)歷是什么?它不是人生履歷,不是項(xiàng)目清單,也不是技能大放送。簡(jiǎn)歷的存在只有一個(gè)目的 —— 幫你約到面試。只要能...

    joyvw 評(píng)論0 收藏0
  • 如何寫一份好前端面試簡(jiǎn)歷?

    摘要:簡(jiǎn)歷的存在只有一個(gè)目的幫你約到面試。即使你通過(guò)其他方式獲得了面試,當(dāng)你入職的時(shí)候,還是要有這么一份紙質(zhì)簡(jiǎn)歷的,所以不要想著偷懶。在該系統(tǒng)上線后,前端性能從提升到,服務(wù)器由臺(tái)減少到臺(tái)通過(guò)量化的數(shù)字來(lái)增強(qiáng)可信度。 簡(jiǎn)歷的本質(zhì) 原文地址在寫簡(jiǎn)歷之前,我們必須清楚的了解一件事情,那就是簡(jiǎn)歷是什么?它不是人生履歷,不是項(xiàng)目清單,也不是技能大放送。簡(jiǎn)歷的存在只有一個(gè)目的 —— 幫你約到面試。只要能...

    wpw 評(píng)論0 收藏0
  • 3月份前端資源分享

    摘要:面試如何防騙一份優(yōu)秀的前端開發(fā)工程師簡(jiǎn)歷是怎么樣的作為,有哪些一般人我都告訴他,但是他都不聽的忠告如何面試前端工程師 更多資源請(qǐng)Star:https://github.com/maidishike... 文章轉(zhuǎn)自:https://github.com/jsfront/mo... 3月份前端資源分享 1. Javascript 使用judge.js做信息判斷 javascript...

    nanchen2251 評(píng)論0 收藏0
  • 搜集React、Vue、Angular和傳統(tǒng)UI組件庫(kù)以及后臺(tái)管理平臺(tái)模板

    摘要:高顏值好用易擴(kuò)展的微信小程序庫(kù),有贊。一套高質(zhì)量的微信小程序組件庫(kù)。用和搭建的一個(gè)通用管理后臺(tái)基于實(shí)現(xiàn)的后臺(tái)管理系統(tǒng)模板一個(gè)后臺(tái)管理系統(tǒng)模板是一套組件化框架,支持定制主題,主要服務(wù)于前臺(tái)及中后臺(tái)產(chǎn)品。基于后臺(tái)管理系統(tǒng)。 快來(lái)Star,在這里哦Awesome UIKit。 showImg(https://segmentfault.com/img/remote/14600000059942...

    zhangrxiang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<