这是一款非常实用的jQuery和CSS3全屏分步式用户调查问卷表单设计效果。该表单每一个步骤显示在一个屏幕中,只有填写了相应的信息,下一步按钮才会出现。该表单使用animate.css来制作元素动画,效果非常的酷。
制作方法
HTML结构
该用户问卷表单采用扁平化的风格。在页面的顶部有一个很细的进度条来显示已完成的步骤。整个表单的分步采用无序列表来制作。
进度条的HTML结构如下:
< div class = "progress" > < div class = "progress-bar" style = "width: 0;" > < span class = "sr-only" >60% Complete</ span > </ div > </ div > |
分步表单的HTML结构如下:
< div class = "questionaire" > < form > < ul class = "progress-form" > < li class = "form-group animated fadeInRightBig activate" data-color = "#E1523D" data-percentage = "20%" > < label for = "nameInput" > < h1 >Hey there!</ h1 > Let's get this party started. Would you mind introducing yourself? </ label > < input type = "text" class = "form-control getName" id = "q1" placeholder = "Herby" required = "required" /> </ li > ... < li class = "form-group animated hide scrollable" data-color = "#00AF66" data-percentage = "100%" > < h3 >Please Review Your Answers (click on any of them to edit):</ h3 > < div class = " editable" > < div class = "break answer1" contenteditable = "true" ></ div > ... </ div > </ li > </ ul > </ form > </ div > |
CSS样式
该用户问卷表单只提供了一些基本的CSS样式。并使用媒体查询来制作响应式表单效果。所有的动画效果都是通过animate.css来完成的。
JAVASCRIPT
在jQuery代码中,主要是处理进度条的动画,以及提交按钮和下一步按钮的相应处理。分别为它们在触发事件的时候添加和移除相应的class类。
其中在.help
上调用了Bootstrap内置的popover()
方法来弹出一个提示框。
$( '.help' ).popover(); |
每一个步骤提交的答案都会被写入到最后一步的列表中:
$( function () { $( '#q1' ).keyup( function () { var nameValue = $( this ).val(); $( '.answer1' ).html(nameValue); }); $( '#q2' ).keyup( function () { var nameValue = $( this ).val(); $( '.answer2' ).html(nameValue); }); $( '#q3' ).keyup( function () { var nameValue = $( this ).val(); $( '.answer3' ).html(nameValue); }); $( '#q4' ).keyup( function () { var nameValue = $( this ).val(); $( '.answer4' ).html(nameValue); }); $( '#q5' ).keyup( function () { var nameValue = $( this ).val(); $( '.answer5' ).html(nameValue); }); }); |