亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用Angularjs和原生JS分別實現(xiàn)動態(tài)效果的輸入框

 更新時間:2016年09月01日 09:42:52   作者:MakingChoice  
現(xiàn)在的很多網(wǎng)站都將輸入框做成了動態(tài)的效果,這樣對于用戶體檢來說非常好,這篇文章分別用Angularjs和原生JS兩種方法來實現(xiàn)動態(tài)效果的輸入框,具有一定的參考價值,有需要的小伙伴們可以來參考借鑒。

在剛開始沒有給輸入框添加焦點之前,沒有任何效果。見下圖:

然后點擊其中任何一個,焦點就會觸發(fā)一個動畫,動畫的結果見圖二:

中間的輸入登錄密碼文字,會自動添加到頂部(原諒我沒有截取到動畫過程的圖片)。

我測試了一下,這樣的效果只有高級瀏覽器支持(IE只有IE10、IE11、Edge支持)。

下面我來把代碼貼上來,原理很簡單,就是通過事件觸發(fā)類名的增加和刪除。具體的動畫由CSS3來實現(xiàn),這也是為什么低級瀏覽器不支持的原因。

原生JS實現(xiàn)示例:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title></title>
 <style>
 *{
  padding: 0;
  margin: 0;
 }
 .demo{
  border: 1px solid gray;
  width: 300px;
  height: 200px;
  position: relative;
  left: 200px;
  top: 200px;
  -webkit-transition: all 0.3s linear;
  -moz-transition: all 0.3s linear;
  -ms-transition: all 0.3s linear;
  -o-transition: all 0.3s linear;
  transition: all 0.3s linear;
 }
 .demo input{
  width: 200px;
  height: 100px;
  position: absolute;
  left: 50px;
  top: 50px;
  -webkit-transition: all 0.3s linear;
  -moz-transition: all 0.3s linear;
  -ms-transition: all 0.3s linear;
  -o-transition: all 0.3s linear;
  transition: all 0.3s linear;
 }
 .demo label{
  position: absolute;
  top: 100px;
  left:80px;
  font-size: 14px;
  -webkit-transition: all 0.3s linear;
  -moz-transition: all 0.3s linear;
  -ms-transition: all 0.3s linear;
  -o-transition: all 0.3s linear;
  transition: all 0.3s linear;
 }
 .activeDemo{
  border: 1px #fd715a solid;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
 }
 .activeInput{
  border: 1px #fd715a solid;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
 }
 .activeLabel{
  font-size: 10px;
  color: #fd715a;
  background: white;
  -webkit-transform: translate(-20px, -58px);
  -moz-transform: translate(-20px, -58px);
  -ms-transform: translate(-20px, -58px);
  -o-transform: translate(-20px, -58px);
  transform: translate(-20px, -58px);
  -webkit-transition: all 0.3s linear;
  -moz-transition: all 0.3s linear;
  -ms-transition: all 0.3 linear;
  -o-transition: all 0.3s linear;
  transition: all 0.3s linear;
 }

 </style>
</head>
<body>
 <div class="demo">
 <input type="text" id="inputDemo"/>
 <label for="inputDemo">請輸入內容</label>
 </div>
</body>
<script>
 var addEvent= function (obj,event,callback) {
 if(obj.addEventListener){
  obj.addEventListener(event,callback)
 }else if(obj.attachEvent){
  obj.attachEvent('on'+event,callback)
 }
 };
 var demo=document.querySelector(".demo");

 var input=document.querySelector("#inputDemo");
 var label=document.querySelector(".demo label");
 addEvent(input,"focus", function () {
 demo.className+=" activeDemo";
 this.className+=" activeInput";
 label.className+=" activeLabel";
 });
 addEvent(input,'blur', function () {
 this.className=this.className.replace(/\s*activeInput\s*/,' ');
 label.className=label.className.replace(/\s*activeLabel\s*/,' ');
 demo.className=demo.className.replace(/\s*activeDemo\s*/,' ');
 })
</script>
</html>

下面是用Angular實現(xiàn)的一個簡單的效果,原理很簡單,就是在指令中通操作DOM來實現(xiàn)動畫。

Angularjs實現(xiàn)示例:

<!DOCTYPE html>
<html lang="en" ng-app="formAnimation">
<head>
 <meta charset="UTF-8">
 <title></title>
 <script src="lib/angular.min.js" type="text/javascript"></script>
 <script src="lib/angular-animate.js" type="text/javascript"></script>
 <style>
 *{
  padding: 0;
  margin: 0;
 }
 .container{
  width: 445px;
  height: 370px;
  border-left: 10px solid #d4d4d4;
  position: relative;
  left: 100px;
  top: 100px;
 }
 .container input{
  position: absolute;
  top: 100px;
  left: 25px;
  height: 40px;
  width: 385px;
 }
 .container span{
  width: 80px;
  height: 25px;
  font-size: 10px;
  background: rgb(237,97,83);
  color: white;
  position: absolute;
  left: 300px;
  top: 109px;
  line-height: 25px;
  text-align: center;
 }
 .container .labelStyle{
  position: absolute;
  left: 45px;
  top: 115px;
  font-size: 14px;
  color: #929292;
  z-index: 999;
  font: "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
 }
 .inputActive{
  border: 2px solid rgb(237,97,90);
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
 }
 .labelActive{
  position: absolute;
  left: 45px;
  top: 115px;
  z-index: 999;
  background: white;
  border: 2px solid white;
  color: rgb(237,97,90);
  font-size: 10px;
  -webkit-transform: translate(-10px, -23px);
  -moz-transform: translate(-10px, -23px);
  -ms-transform: translate(-10px, -23px);
  -o-transform: translate(-10px, -23px);
  transform: translate(-10px, -23px);
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
 }
 </style>
</head>
<body ng-controller="formAnimationController">
 <form action="" class="container" form-animation>
 <label for="inputDemo" class="labelStyle">請輸入內容</label>
 <input type="text" id="inputDemo" />
 <span>請?zhí)顚憙热?lt;/span>
 </form>
</body>
<script>
 angular.module('formAnimation',[])
 .controller('formAnimationController', function () {

 })
 .directive('formAnimation',['$animate', function ($animate) {
  return {
  restrict:'EA',
  link: function (scope, element, attr) {
   element.find("input").on('focus', function () {
   element.find("input").addClass("inputActive");
   element.find("label").removeClass("labelStyle").addClass("labelActive")
   });
   element.find("input").on('blur', function () {
   element.find("input").removeClass("inputActive");
   element.find("label").removeClass("labelActive").addClass("labelStyle");
   })
  }
  }
 }])

</script>
</html>

總結

上面的兩種方式只是體現(xiàn)了一下實現(xiàn)的方式,具體的實現(xiàn)樣式大家可以可以參照效果圖,調節(jié)CSS樣式。希望這篇文章的內容對大家學習Angularjs和JS能有所幫助,如果有問題可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • AngularJS中的Directive自定義一個表格

    AngularJS中的Directive自定義一個表格

    本篇文章給大家介紹在angularjs中自定義一個有關表格的directive,涉及到angularjs directive相關知識,對本文感興趣的朋友一起學習吧
    2016-01-01
  • AngularJS入門教程之AngularJS指令

    AngularJS入門教程之AngularJS指令

    AngularJS指令用于擴展HTML。本文給大家介紹AngularJS入門教程之AngularJS指令,感興趣的朋友一起學習吧
    2016-04-04
  • 詳解JavaScript的AngularJS框架中的作用域與數(shù)據(jù)綁定

    詳解JavaScript的AngularJS框架中的作用域與數(shù)據(jù)綁定

    這篇文章主要介紹了JavaScript的AngularJS框架中的作用域與數(shù)據(jù)綁定,包括作用域的繼承以及數(shù)據(jù)的單向和雙向綁定等重要知識點,需要的朋友可以參考下
    2016-03-03
  • Angular項目從新建、打包到nginx部署全過程記錄

    Angular項目從新建、打包到nginx部署全過程記錄

    一直比較喜歡angular,正巧最近有個項目用到了,所以想和大家來分享下,下面這篇文章主要給大家介紹了關于Angular項目從新建、打包到nginx部署的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-12-12
  • AngularJS中使用ngModal模態(tài)框實例

    AngularJS中使用ngModal模態(tài)框實例

    本篇文章主要介紹了AngularJS中使用ngModal模態(tài)框實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • AngularJS入門教程之MVC架構實例分析

    AngularJS入門教程之MVC架構實例分析

    這篇文章主要介紹了AngularJS的MVC架構,結合實例形式重點分析了ng-controller聲明并使用控制器的操作技巧與控制器作用域的相關注意事項,需要的朋友可以參考下
    2016-11-11
  • AngularJS表單詳解及示例代碼

    AngularJS表單詳解及示例代碼

    本文主要介紹AngularJS表單的知識,這里整理了表單的基礎知識和簡單的示例代碼,有需要的小伙伴可以參考下
    2016-08-08
  • angularjs http與后臺交互的實現(xiàn)示例

    angularjs http與后臺交互的實現(xiàn)示例

    這篇文章主要介紹了angularjs http與后臺交互的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • 利用Angular+Angular-Ui實現(xiàn)分頁(代碼加簡單)

    利用Angular+Angular-Ui實現(xiàn)分頁(代碼加簡單)

    這篇文章主要介紹了利用Angular+Angular-Ui實現(xiàn)分頁,利用Angular+Angular-Ui實現(xiàn)的分頁分頁代碼更加簡單,更加容易懂哦,相信本文的內容對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • angularjs實現(xiàn)多張圖片上傳并預覽功能

    angularjs實現(xiàn)多張圖片上傳并預覽功能

    這篇文章主要為大家詳細介紹了angularjs實現(xiàn)多張圖片上傳并預覽功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論