飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

AngularJS 切换菜单

时间:2021-11-30  作者:匿名  

这是一个切换菜单的一个例子,它可以通过上面两个图形按钮来切换视图。 开发这个应用程序,我们使用HTML、CSS和AngularJS。

blob.png

完整代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Learn AngularJS - Switchable Grid</title>
    <link href="http://fonts.googleapis.com/css?family=Cookie|Open+Sans:400,700" rel="stylesheet" />
    <!-- The main CSS file -->
    <style>
    /*-------------------------
    Simple reset
    --------------------------*/
    *{
    margin:0;
    padding:0;
    }
    /*-------------------------
    General Styles
    --------------------------*/
    body{
    font:15px/1.3 'Open Sans', sans-serif;
    color: #5e5b64;
    text-align:center;
    }
    a, a:visited {
    outline:none;
    color:#389dc1;
    }
    a:hover{
    text-decoration:none;
    }
    section, footer, header, aside, nav{
    display: block;
    }
    /*-------------------------
    The search input
    --------------------------*/
    .bar{
    background-color: #5c9bb7;
    background-image: -webkit-linear-gradient(top, #5c9bb7, #5392ad);
    background-image: -moz-linear-gradient(top, #5c9bb7, #5392ad);
    background-image: linear-gradient(top, #5c9bb7, #5392ad);
    box-shadow: 0 1px 1px #ccc;
    border-radius: 2px;
    width: 558px;
    padding: 10px;
    margin: -1px auto 2px;
    position: relative;
    text-align: right;
    line-height: 1;
    }
    .bar a{
    background:#4987a1 center center no-repeat;
    width:32px;
    height:32px;
    display:inline-block;
    text-decoration:none !important;
    margin-right:5px;
    border-radius:2px;
    }
    .bar a.active{
    background-color:#c14694;
    }
    .bar a.list-icon{
    background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzNkFCQ0ZBMTBCRTExRTM5NDk4RDFEM0E5RkQ1NEZCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzNkFCQ0ZCMTBCRTExRTM5NDk4RDFEM0E5RkQ1NEZCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjM2QUJDRjgxMEJFMTFFMzk0OThEMUQzQTlGRDU0RkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjM2QUJDRjkxMEJFMTFFMzk0OThEMUQzQTlGRDU0RkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7h1bLqAAAAWUlEQVR42mL8////BwYGBn4GCACxBRlIAIxAA/4jaXoPEkMyjJ+A/g9MDJQBRhYg8RFqMwg8RJIUINYLFDmBUi+ADQAF1n8ofk9yIAy6WPg4GgtDMRYAAgwAdLYwLAoIwPgAAAAASUVORK5CYII=);
    }
    .bar a.grid-icon{
    background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBEQkMyQzE0MTBCRjExRTNBMDlGRTYyOTlBNDdCN0I4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBEQkMyQzE1MTBCRjExRTNBMDlGRTYyOTlBNDdCN0I4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MERCQzJDMTIxMEJGMTFFM0EwOUZFNjI5OUE0N0I3QjgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MERCQzJDMTMxMEJGMTFFM0EwOUZFNjI5OUE0N0I3QjgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4MjPshAAAAXklEQVR42mL4////h/8I8B6IGaCYKHFGEMnAwCDIAAHvgZgRyiZKnImBQsACxB+hNoDAQyQ5osQZIT4gH1DsBZABH6AB8x/JaQzEig++WPiII7Rxio/GwmCIBYAAAwAwVIzMp1R0aQAAAABJRU5ErkJggg==);
    }
    .bar input{
    background:#fff no-repeat 13px 13px;
    border: none;
    width: 100%;
    line-height: 19px;
    padding: 11px 0;
    border-radius: 2px;
    box-shadow: 0 2px 8px #c4c4c4 inset;
    text-align: left;
    font-size: 14px;
    font-family: inherit;
    color: #738289;
    font-weight: bold;
    outline: none;
    text-indent: 40px;
    }
    /*-------------------------
    List layout
    --------------------------*/
    ul.list{
    list-style: none;
    width: 500px;
    margin: 0 auto;
    text-align: left;
    }
    ul.list li{
    border-bottom: 1px solid #ddd;
    padding: 10px;
    overflow: hidden;
    }
    ul.list li img{
    width:120px;
    height:120px;
    float:left;
    border:none;
    }
    ul.list li p{
    margin-left: 135px;
    font-weight: bold;
    color:#6e7a7f;
    }
    /*-------------------------
    Grid layout
    --------------------------*/
    ul.grid{
    list-style: none;
    width: 570px;
    margin: 0 auto;
    text-align: left;
    }
    ul.grid li{
    padding: 2px;
    float:left;
    }
    ul.grid li img{
    width:280px;
    height:280px;
    display:block;
    border:none;
    }
    </style>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
</head>
<body ng-app="switchableGrid" ng-controller="SwitchableGridController">
    <div class="bar">
        <!-- 这两个按钮切换布局变量,致显示正确的URL。 -->
        <a href="#" class="list-icon" ng-class="{active: layout == 'list'}" ng-click="layout = 'list'"></a>
        <a href="#" class="grid-icon" ng-class="{active: layout == 'grid'}" ng-click="layout = 'grid'"></a>
    </div>
    <!-- 我们有两种布局。我们根据“布局”绑定选择要显示的内容 -->
    <ul ng-show="layout == 'grid'" class="grid">
        <!-- 具有大照片且没有文本的视图 -->
        <li ng-repeat="p in pics">
        <a href="{{p.link}}" target="_blank"><img ng-src="{{p.images.low_resolution.url}}" /></a>
        </li>
    </ul>
    <ul ng-show="layout == 'list'" class="list">
        <!-- 一个小型视图,可查看较小的照片和标题 -->
        <li ng-repeat="p in pics">
        <a href="{{p.link}}" target="_blank"><img ng-src="{{p.images.thumbnail.url}}" /></a>
        <p>{{p.caption.text}}</p>
        </li>
    </ul>
    <!-- 引用资源模块的AngularJS -->
    <script src="https://www.yangzhiw.cn/static/js/angularjs-1.2.15/angular.min.js"></script>
    <script src="https://www.yangzhiw.cn/static/js/angularjs-1.5.8/angular-resource.min.js"></script>
    <script>
        // 定义一个新模块。
        // ngResource模块,因此我们可以使用Instagram API
        var app = angular.module("switchableGrid", ['ngResource']);
        // 创建并注册新的“instagram”服务
        app.factory('instagram', function($resource){
            return {
            fetchPopular: function(callback){
                // ngResource模块为我们提供$resource服务。它使使用AJAX变得容易。这里我使用的是一个测试应用程序的客户端id。把它换成你的。
                var api = $resource('https://api.instagram.com/v1/media/popular?client_id=:client_id&callback=JSON_CALLBACK',{
                    client_id: '642176ece1e7445e99244cec26f4de1f'
                    },{
                            //这将创建一个我们选择命名为“fetch”的操作。It问题
                            //对资源URL的JSONP请求。JSONP要求
                            //callback=JSON\\u回调部分被添加到URL中。
                            fetch:{method:'JSONP'}
                        });
                        api.fetch(function(response){
                            // 调用提供的回调函数
                            callback(response.data);
                        });
                    }
                }
            });
        // 控制器。请注意,我已经包括了我们在下面定义的instagram服务。它将在功能内部自动可用。
        function SwitchableGridController($scope, instagram){
            // 应用程序的默认布局。单击工具栏中的按钮可更改此值。
            $scope.layout = 'grid';
            $scope.pics = [];
            // 使用instagram服务获取热门图片列表
            instagram.fetchPopular(function(data){
                // 指定pics阵列将使视图自动按角度重新绘制。
                $scope.pics = data;
            });
        }
    </script>
</body>
</html>
搜你所爱
AngularJS教程:目录
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。