angular指令的简单练习
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>quick work</title>
- <script type="text/javascript" src="../jquery.js"></script>
- <script type="text/javascript" src="../angular-1.4.1/angular-1.4.1/angular.js"></script>
- <style type="text/css">
- *{
- margin: 0 auto;
- padding: 0px;
- }
- li{
- list-style: none;
- }
- .total {
- width: 640px;
- height: auto;
- border:1px solid #333;
- }
- .total_top{
- border : 1px solid #333;
- margin: 20px;
- height: 100px;
- overflow: hidden;
- }
- .total_bottom {
- width: 100%;
- height: 60px;
- border-top: 1px solid #333;
- display: inline-flex;
- align-items: center;
- }
- ul {
- width: 400%;
- height: 100px;
- overflow: hidden;
- }
- .moveDiv{
- height: 100px;
- width: 100%;
- }
- ul li{
- height: 100%;
- display: block;
- float: left;
- }
- .total_bottom span {
- font-size: 20px;
- color: #000;
- display: block;
- width: 60px;
- height: 60px;
- text-align: center;
- line-height: 60px;
- cursor: pointer;
- margin: 0px;
- }
- .total_bottom_left{
- border-right: 1px solid #333;
- float: left;
- }
- .total_bottom_right{
- border-left: 1px solid #333;
- float: right;
- }
- .bottom_cen {
- margin: 0 auto;
- text-align: center;
- float: left;
- }
- .bottom_cen a{
- width: 15px;
- height: 5px;
- background-color: #000;
- float: left;
- margin-right: 10px;
- }
- </style>
- </head>
- <body ng-app = "quickApp">
- <div ng-controller = "quickController">
- <div class="total">
- <total-content dataset-data = "totalData" li-width = "width" clickindex = "clickM(index)"></total-content>
- <!-- <div class="total_top">
- <ul>
- <li ng-repeat = "data in totalData">{{data.content}}</li>
- </ul>
- </div>
- <div>
- <quick-boor dataset-data = "totalData" ></quick-boor>
- </div> -->
- </div>
- </div>
- </body>
- <script type="text/javascript">
- var app =angular.module("quickApp",[]);
- app.controller("quickController",function($scope,$timeout){
- $timeout(function() {
- angular.element(".total_top ul li").css({"width" : $(".total_top").width() + "px"});
- $scope.width = $(".total_top").width();
- });
- $scope.totalData = [{
- "content" : "111111111"
- },{
- "content" : "222222222"
- },{
- "content" : "3333333333"
- }];
- // --------1
- // $scope.clickM = function(index){
- // angular.element(".total_top ul").stop().animate({marginLeft : - $scope.width * index + "px"},500);
- // }
- })
- .directive("totalContent",function($timeout){
- return {
- restrict : 'E',
- replace : true,
- scope : {
- datasetData : "=",
- liWidth : "="
- // liWidth : "=", ------1
- // clickindex : "&" -----1
- },
- template : '<div><div class="total_top">'+
- '<ul>'+
- '<li ng-repeat = "data in datasetData">{{data.content}}</li>'+
- '</ul>'+
- '</div><div class="total_bottom">' +
- '<span class="total_bottom_left" ng-click = "onClickLeft()"><</span>'+
- '<div class="bottom_cen">' +
- // ng-click="clickindex({index : $index}) 1
- '<a href="#" ng-repeat = "data in datasetData" ng-click="clickindex($index)"></a>' +
- '</div>' +
- '<span class="total_bottom_right" ng-click = "onClickRight()">></span>' +
- '</div>' +
- '</div></div>',
- link : function(scope,elem,attrs) {
- // $timeout(function() {
- // angular.element(".total_top ul li").css({"width" : angular.element(".total_top").width() + "px"});
- // scope.width = angular.element(".total_top").width();
- // });
- scope.index = 0;
- scope.clickindex = function(index){
- scope.index = index
- angular.element(".total_top ul").stop().animate({marginLeft : - scope.liWidth * index + "px"},500);
- }
- scope.onClickLeft = function(){
- if(scope.index < angular.element(".total_top ul li").length - 1 && scope.index >= 0){
- scope.index ++;
- angular.element(".total_top ul").stop().animate({marginLeft : - scope.liWidth * scope.index + "px"},500);
- }
- }
- scope.onClickRight = function(){
- if(scope.index <= angular.element(".total_top ul li").length - 1 && scope.index > 0){
- scope.index --;
- angular.element(".total_top ul").stop().animate({marginLeft : - scope.liWidth * scope.index + "px"},500);
- }
- }
- }
- }
- })
- </script>
- </html>
一个简单的指令练习,主要实现的功能是点击事件,内容滚动。
点击左右的方框箭头,可以使内容滚动,或者点击中间的小长方形条,也可以使得内容滚动起来。
如下图是界面显示效果
对于指令中的作用域 “”=“”:表示与父scope中的属性进行双向数据绑定
对于指令中的作用域 “”&“”:表示与父scope中的函数进行传递,稍后进行调用
对于指令中的作用域 “”@“”:表示把当前属性作为字符串传递实现指令与html页面元素关联
angular指令的简单练习的更多相关文章
- angular指令浅谈
今天在闲暇时间再次对angularjs的指令进行了初探,不探不知道一探吓一跳啊, 就一个简单的指令整整难住我了两个小时,先不说代码的逻辑是否复杂,就一些内部的一些实现让我看起来都是头疼的不行啊,不过最 ...
- angular指令
转自:http://www.cnblogs.com/rohelm/p/4051437.html 对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素的功能. 首先来看个完整 ...
- Angular4 后台管理系统搭建(9) - 用自定义angular指令,实现在服务端验证
最近这段时间发现,北京这用angular4 或 angular2的公司很少.几乎是没有.很担心自己是不是把精力放到了不应该的地方.白耽误了时间.但是随着我对新版angular框架理解的加深.个人感觉a ...
- angular指令之complie和link不得不说的故事
angular指令比较晦涩难懂的就是complie和link字段了,什么时候该用complie?什么时候该用link?总是很难分别清楚.当理解了指令的真正编译原理的时候,就会发现这相当的简单. ng怎 ...
- angular指令深度学习篇
angular指令深度学习-过滤器 limitTo ... <body ng-app="app" > <div ng-controller="myCtr ...
- Angular指令渗透式理解
通过一段时间对angular指令的使用,理解了angular指令的意义,下面逐一介绍一下. ng-app:定义一个angualr模块,表示angular作用的范围,如下代码: ng-app在html标 ...
- 20155219--pwd指令的简单实现
pwd指令的简单实现 pwd命令作用 Linux中用** pwd **命令来查看"当前工作目录"的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确 ...
- 【转】angular指令入坑
独立作用域和函数参数 通过使用本地作用域属性,你可以传递一个外部的函数参数(如定义在控制器$scope中的函数)到指令.这些使用&就可以完成.下面是一个例子,定义一个叫做add的本地作用域属性 ...
- Angular指令1
Angular的指令 也就是directive,其实就是一WebComponent,以前端的眼光来看,好象很复杂,但是以后端的眼光来看,还是非常简单的.其实就是一个中等水平的类. var myModu ...
随机推荐
- 【转】ARM vs X86 – Key differences explained!
原文:http://www.androidauthority.com/arm-vs-x86-key-differences-explained-568718/ Android supports 3 d ...
- 【20171027早】alert(1) to win 第9,10,11,12题
人在江湖,不服就干! 第9题: function escape(s) { function htmlEscape(s) { return s.replace(/./g, function(x) { r ...
- java springmvc+bui+bootstrap后台管理系统搭建
先来说说bui,这个框架是阿里巴巴的一个前端团队研发的,能够用很少的代码快速搭建一个后台管理系统,很适做管理平台的开发, 之前用过类似这样的框架extjs,做个比较,这个框架实现功能比extjs的代码 ...
- Java并发编程--线程池
1.ThreadPoolExecutor类 java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,下面我们来看一下ThreadPoolExecuto ...
- 【XML】xStream浅录
XStream可以用来转换对象-XML,或者XML-对象. 官网地址:http://x-stream.github.io 小案例: 实体类 FileVo.java package cn.pinnsvi ...
- Windows环境下多线程编程原理与应用读书笔记(7)————事件及其应用
<一>事件 事件主要用于线程间传递消息,通过事件来控制一个线程是处于执行状态还是处于挂起状态. 事件和互斥量之间的差别: 事件主要用于协调两个或者多个线程之间的动作,使其协调一致,符合逻辑 ...
- oracle数据库显示所有用户方法
sql>show user查看自己的是哪个用户sql>select * from all_users; 查询所有用户sql>select * from user_users;查询当前 ...
- sublime中配置Java 环境
1.线安装jdk,并配置好环境变量2.创建批处理或Bash Shell脚本文件打开任意的文本编辑器,输入下面的内容,并保存为runJava.bat文件,然后把runJava.bat批处理文件移动到JD ...
- shadow dom 隔离代码 封装
Shadow DOM是指浏览器的一种能力,它允许在文档(document)渲染时插入一棵DOM元素子树,但是这棵子树不在主DOM树中. Shadow DOM 解决了 DOM 树的封装问题. ...
- jsp静态与动态包含的区别和联系
1. <%@ include file=” ”%>是指令元素.<jsp:include page=” ”/>是行为元素 2. 最终编译成java文件的数目不同. * 静态包含在 ...