最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

使用AngularJS实现表单向导的方法_AngularJS

来源:懂视网 责编:小采 时间:2020-11-27 21:39:44
文档

使用AngularJS实现表单向导的方法_AngularJS

使用AngularJS实现表单向导的方法_AngularJS:今天我们将使用AngularJs和伟大的UI Router以及Angular ngAnimate module创建一个带动画的多步表单。这项技术可以用在你想要简化用户操作的大表单上。 我们看到这项技术已经应用在了许多的网页上。比如购物车,注册表单,入职流程以及许多多步表单,让用户更
推荐度:
导读使用AngularJS实现表单向导的方法_AngularJS:今天我们将使用AngularJs和伟大的UI Router以及Angular ngAnimate module创建一个带动画的多步表单。这项技术可以用在你想要简化用户操作的大表单上。 我们看到这项技术已经应用在了许多的网页上。比如购物车,注册表单,入职流程以及许多多步表单,让用户更
今天我们将使用AngularJs和伟大的UI Router以及Angular ngAnimate module创建一个带动画的多步表单。这项技术可以用在你想要简化用户操作的大表单上。

我们看到这项技术已经应用在了许多的网页上。比如购物车,注册表单,入职流程以及许多多步表单,让用户更容易在线填写表单。

下面我们将构建它:

2015619120033761.jpg (1064×629)

使用UI Router,它能内嵌状态,为每个状态显示不同的view,我们能让多步表单变得相当的容易。

让我们言归正传,开始创建我们的最棒的表单!

创建工程

创建工程有个模板结构. 需要个 布局文件 , 每个表单的视图文件, 格式文件, 以及JavaScript 文件.

下面就是文件清单,先创建好它们,接着在填充内容

  • - index.html
  • - form.html
  • - form-profile.html
  • - form-interests.html
  • - form-payment.html
  • - app.js
  • - style.css
  • 每个表单-____.html表示层级结构中的html文件. 这些结构最终创建我们的表单结构.


    我们的布局/模板文件 index.html

    我们通过建立一个主文件来引入我们所需要的所有资源以开始我们的项目 ,这里我们使用 index.html 文件作为主文件

    现在,我们加载我们所需的资源(AngularJS, ngAnimate, Ui Router, 以及其他脚本和样式表)并且设定一个 ui-view用来告知 UI Router 我们的视图需要显示到哪里。这里我们使用 Bootstrap 来快速应用样式。

    注意我们是如何第二次在项目中使用ui-view的。这就是UI Router伟大的地方:我们可以嵌套声明和视图。这能够在我们开发应用时提供给我们非常多的灵活性。关于UI Router视图的内容,请参见官方文档。

    添加基于状态的激活类

    我们希望每一个状态按钮能够在他们被激活时展示。为了达到这个效果,我们将会使用UI Router提供的ui-sref-active。如果ui-sref和当前状态一致,则会添加我们指定的类。

    现在,你可能想知道我们的表单究竟看起来是什么样子。让我们打开浏览器看一眼。

    2015619120108560.png (613×307)

    目前为止,我们并没有完全按照希望的那样得到所有的内容,但是这是一系列伟大事情的开端。让我们继续前进,添加一点样式,之后会添加一些嵌入视图和注释。

    基础Stylingstyle.css

    我们将设计我们的form-container和status-buttons来是我们的表单看起来更好。

    /* style.css */
    /* BASIC STYLINGS
    ============================================================================= */
    body { padding-top:20px; }
     
    /* form styling */
    #form-container { background:#2f2f2f; margin-bottom:20px;
     border-radius:5px; }
    #form-container .page-header { background:#151515; margin:0; padding:30px; 
     border-top-left-radius:5px; border-top-right-radius:5px; }
     
    /* numbered buttons */
    #status-buttons { }
    #status-buttons a { color:#FFF; display:inline-block; font-size:12px; margin-right:10px; text-align:center; text-transform:uppercase; }
    #status-buttons a:hover { text-decoration:none; }
     
    /* we will style the span as the circled number */
    #status-buttons span { background:#080808; display:block; height:30px; margin:0 auto 10px; padding-top:5px; width:30px; 
     border-radius:50%; }
     
    /* active buttons turn light green-blue*/
    #status-buttons a.active span { background:#00BC8C; }
    

    现在我们的按钮更好看了并且更符合我们想要的了,接下来我们看下嵌套视图。
    嵌套视图form-profile.html, form-interests.html, form-payment.html

    这部分会比较简单。我们将定义不同的带有我们需要的输入框的视图。并且将他们绑定到formData对象以便我们能看到输入的数据。

    下面是我们用于嵌套视图的视图文件:
    表单概要视图

    表单兴趣视图

    表单支付视图

    既然我们已经定义了这些视图,那么当我们浏览表单时,他们就会显示出来。同样我们用下一个按钮和ui-sref来连接每一个新视图.


    当使用ui-sref时,你要连接到你路由中定义的state而不是URL。然后Angular会使用这个来为你构建href。

    下面是我们表单目前的每一个页面。

    2015619120129718.jpg (450×525)

    2015619120150291.jpg (450×525)

    2015619120206904.jpg (450×525)

    为了让我们的页面不同寻常,让我们加上动画效果。

    让我们的表单产生动画效果

    因为在项目开始的时候,我们已经加载了ngAnimate,它已经添加到需要动画的的类上了。当视图进入或退出的时候,它将自动添加类ng-enter和ng-leave。

    现在我们所有做的就是通过样式形成我们最终的表单。为了理解Angular动画,这篇文章是一个很好的起点。

    让我们进去css文件,将动画,并应用到我们的表单上

    /* style.css */
    /* ANIMATION STYLINGS
    ============================================================================= */
    #signup-form { position:relative; min-height:300px; overflow:hidden; padding:30px; }
    #form-views { width:auto; }
     
    /* basic styling for entering and leaving */
    /* left and right added to ensure full width */
    #form-views.ng-enter,
    #form-views.ng-leave { position:absolute; left:30px; right:30px;
     transition:0.5s all ease; -moz-transition:0.5s all ease; -webkit-transition:0.5s all ease; 
    }
     
    /* enter animation */
    #form-views.ng-enter { 
     -webkit-animation:slideInRight 0.5s both ease;
     -moz-animation:slideInRight 0.5s both ease;
     animation:slideInRight 0.5s both ease; 
    }
     
    /* leave animation */
    #form-views.ng-leave { 
     -webkit-animation:slideOutLeft 0.5s both ease;
     -moz-animation:slideOutLeft 0.5s both ease;
     animation:slideOutLeft 0.5s both ease; 
    }
     
    /* ANIMATIONS
    ============================================================================= */
    /* slide out to the left */
    @keyframes slideOutLeft {
     to { transform: translateX(-200%); }
    }
    @-moz-keyframes slideOutLeft { 
     to { -moz-transform: translateX(-200%); }
    }
    @-webkit-keyframes slideOutLeft {
     to { -webkit-transform: translateX(-200%); }
    }
     
    /* slide in from the right */
    @keyframes slideInRight {
     from { transform:translateX(200%); }
     to { transform: translateX(0); }
    }
    @-moz-keyframes slideInRight {
     from { -moz-transform:translateX(200%); }
     to { -moz-transform: translateX(0); }
    }
    @-webkit-keyframes slideInRight {
     from { -webkit-transform:translateX(200%); }
     to { -webkit-transform: translateX(0); }
    }
    

    首先,确定视图离开或进去时,表单的样式,他们是绝对定位的。需要确认当视图进入的时候一个视图不会放到另一个视图的下面。

    其次,应用我们的动画到.ng-enter和.ng-leave类

    第三,用@keyframes定义动画。所有这些部分组合到一起,我们的表单就有了Angular动画,基于状态的UI Router和Angular数据绑定。

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    使用AngularJS实现表单向导的方法_AngularJS

    使用AngularJS实现表单向导的方法_AngularJS:今天我们将使用AngularJs和伟大的UI Router以及Angular ngAnimate module创建一个带动画的多步表单。这项技术可以用在你想要简化用户操作的大表单上。 我们看到这项技术已经应用在了许多的网页上。比如购物车,注册表单,入职流程以及许多多步表单,让用户更
    推荐度:
    标签: 使用 表单 angularjs
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top