<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          首頁

          css3通過scale()、rotate()實現放大、旋轉

          前端達人

          css3通過scale()實現放大功能、通過rotate()實現旋轉功能,下面有個示例,大家可以參考下

          一、scale()方法

          縮放,指的是“縮小”和“放大”。在CSS3中,我們可以使用scale()方法來將元素根據中心原點進行縮放。

          跟translate()方法一樣,縮放scale()方法也有3種情況:

          (1)scaleX(x):元素僅水平方向縮放(X軸縮放);
          (2)scaleY(y):元素僅垂直方向縮放(Y軸縮放);
          (3)scale(x,y):元素水平方向和垂直方向同時縮放(X軸和Y軸同時縮放);

          1、scaleX(x)

          語法:

          transform:scaleX(x)

          說明:

          x表示元素沿著水平方向(X軸)縮放的倍數,如果大于1就代表放大;如果小于1就代表縮小。
          大家想想倍數是怎樣一個概念就很好理解了。

          2、scaleY(y)

          語法:

          transform:scaleY(y)

          說明:

          y表示元素沿著垂直方向(Y軸)縮放的倍數,如果大于1就代表放大;如果小于1就代表縮小。

          3、scale(x,y)

          語法:

          transform:scale(x,y)

          說明:

          x表示元素沿著水平方向(X軸)縮放的倍數,y表示元素沿著垂直方向(Y軸)縮放的倍數。
          注意,Y是一個可選參數,如果沒有設置Y值,則表示X、Y兩個方向的縮放倍數是一樣的(同時放大相同倍數)。

          舉例:

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          31
          32
          33
          34
          35
          36
          37
          38
          39
          40
          41
          42
          43
          44
          45
          <!DOCTYPE html>
          <head>
              <title>CSS3縮放scale()用法</title>
              <style type="text/css">
                  /*設置原始元素樣式*/
                  .main
                  {
                      margin:100px auto;/*水平居中*/
                      width:300px;
                      height:200px;
                      border:1px dashed gray;
                  }
                  /*設置當前元素樣式*/
                  #jb51
                  {
                      width:300px;
                      height:200px;
                      color:white;
                      background-color: #3EDFF4;
                      text-align:center;
                      transform:scaleX(1.5);
                      -webkit-transform:scaleX(1.5);  /*兼容-webkit-引擎瀏覽器*/
                      -moz-transform:scaleX(1.5);     /*兼容-moz-引擎瀏覽器*/
                  }
                  /*普通方便對比*/
                   #jbzj
                  {
                      width:300px;
                      height:200px;
                      color:white;
                      background-color: #3EDFF4;
                      text-align:center;
                  }
              </style>
          </head>
          <body>
              <div class="main">
                  <div id="jb51">腳本之家1</div>
              </div>
              <div class="main">
                  <div id="jbzj">腳本之家2</div>
              </div>
          </body>
          </html>

          在chrome瀏覽器預覽效果如下:

          分析:

          從上圖可以看出,元素沿著X軸方向放大了1.5倍(兩個方向同時延伸,整體放大1.5倍)。

          transform:scaleY (1.5);
          -webkit-transform:scaleY(1.5); /*兼容-webkit-引擎瀏覽器*/
          -moz-transform:scaleY(1.5); /*兼容-moz-引擎瀏覽器*/

          當使用上面代碼時,在瀏覽器預覽效果如下:

          css3通過scale()實現放大功能

          通過rotate()實現旋轉功能

          旋轉rotate()函數通過指定的角度參數使元素相對原點進行旋轉。它主要在二維空間內進行操作,設置一個角度值,用來指定旋轉的幅度。如果這個值為正值,元素相對原點中心順時針旋轉;如果這個值為負值,元素相對原點中心逆時針旋轉。如下圖所示:

          HTML代碼:

          1
          2
          3
          <div class="wrapper">
            <div></div>
          </div>

          CSS代碼:

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          .wrapper {
            width: 200px;
            height: 200px;
            border: 1px dotted red;
            margin: 100px auto;
          }
          .wrapper div {
            width: 200px;
            height: 200px;
            background: orange;
            -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
          }

          演示結果

          而transition則可設置元素變化所需的時間

          html中的結構代碼

          <ul>
          <li><img src="image/1.jpg" ></li>
          <li><img src="image/2.jpg" ></li>
          <li><img src="image/3.jpg" ></li>
          </ul>

          css3樣式

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          ul{
          margin-top:50px;
          list-style:none;
          }
          ul li{
          width:200px;
          height:150px;
          float:left;
          margin-left:10px;
          -webkit-transition:all 1s;
          -moz-transition:all 1s;
          -o-transition:all 1s;
          }
          ul li:hover{
          -webkit-transform:scale(1.5) rotate(10deg);
          -moz-transform:scale(1.5) rotate(10deg);
          -o-transform:scale(1.5) rotate(10deg);
          }
          li img{
          width:100%;
          height:100%;
          }

          以上就是css3通過scale()、rotate()實現放大、旋轉的詳細內容,更多關于css3放大、旋轉的資料請關注腳本之家其它相關文章!




          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:腳本之家

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          解決往數組添加數據,第二次會覆蓋第一次的方案

          前端達人

          
          
          1. // 獲取緩存里邊的項目數據
          2. var e = wx.getStorageSync('projectList');
          3. if(!e){
          4. // 獲取存放項目
          5. var e = this.data.projectList;
          6. }
          7. // 獲取項目個數
          8. var a = e.length;
          9. var title = wx.getStorageSync('title');
          10. var value = wx.getStorageSync('value');
          11. var img_url = wx.getStorageSync('img_url');
          12. var i = {
          13. id: a,
          14. title: title,
          15. value: value,
          16. img_url: img_url,
          17. };
          18. e.push(i);

          這里的代碼是以小程序為案例的,所有程序都是一個道理

          直接上代碼來解釋,第二次數據會覆蓋第一次的原因就是,每次在觸發這個方法的時候初始化了數據。所以就會覆蓋數據

          所以在這個方法里邊只需要先獲取e這個數據,判斷e是否存在值,當有值的時候往里邊push

          數據,當沒有數據的時候直接將數據初始化即可




          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:csdn

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

          vue.js — 解決添加重復數據報錯問題

          前端達人

          <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.js" ></script> </head> <body> <div id="box"> <input type="button" value="添加" @click="add"> <ul> <li v-for="val in arr"> {{val}} </li> </ul> </div> </body> <script> var vm = new Vue({
                      data: {
                          arr: ['apple','pear','orange']
                      },
                      methods:{
                          add: function(){ //[Vue warn]: Duplicate value found in v-for="val in arr": "tomato".  //Use track-by="$index" if you are expecting duplicate values. //重復添加會報數據重復提示 this.arr.push('tomato');
                          }
                      }
                  }).$mount('#box'); </script> </html>
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25
          • 26
          • 27
          • 28
          • 29
          • 30
          • 31
          • 32
          • 33

          當我們點擊【添加】按鈕兩次之后,會出現如下報錯信息
          vue添加重復數據報錯

          使用track-by解決添加重復數據報錯問題

          <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.js" ></script> </head> <body> <div id="box"> <input type="button" value="添加" @click="add"> <ul> <li v-for="val in arr" track-by='$index'> {{val}} </li> </ul> </div> </body> <script> var vm = new Vue({
                      data: {
                          arr: ['apple','pear','orange']
                      },
                      methods:{
                          add: function(){ //[Vue warn]: Duplicate value found in v-for="val in arr": "tomato".  //Use track-by="$index" if you are expecting duplicate values. //重復添加會報數據重復提示 this.arr.push('tomato');
                          }
                      }
                  }).$mount('#box'); </script> </html>
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25
          • 26
          • 27
          • 28
          • 29
          • 30
          • 31
          • 32
          • 33

          解決vue添加相同數據報錯

          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:csdn

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          JavaScript 中的作用域、預解析以及變量提升

          前端達人



          JavaScript 中的作用域、預解析以及變量提升

          作用域:變量的作用范圍

          局部作用域:函數內部



          在局部作用域聲明的變量稱為局部變量,局部變量只能在當前函數內部使用



          1)函數在執行的時候會在內存中開辟新空間



          2)當執行完畢函數之后,會關閉作用域空間(變量被銷毀)



          注意:形參也是局部變量



          function fn() {

              let b = 5

            // 局部訪問 變量 b 

              console.log(b) // 5

          }

          fn()

          // 全局訪問 變量 b

          console.log(b) // 訪問不存在的變量,報錯

          1

          2

          3

          4

          5

          6

          7

          8

          在控制臺打印得到如下結果







          全局作用域:函數外部



          1)在全局作用域聲明的變量是全局變量,全局變量可以在任何地方使用



          2)因為全局變量可以任何地方使用,所以要特別關注局部變量



          let a = 2

          function fn() {

              // 局部訪問 變量 a

              console.log(a) // 2

          }

          fn()

          // 全局訪問 變量 a

          console.log(a) // 2

          1

          2

          3

          4

          5

          6

          7

          8

          在控制臺打印得到如下結果







          函數內部之所以能夠訪問到變量 a ,是因為有一個作用鏈,函數內部訪問一個變量會先在自己的作用域內找,找不到會向上級作用域找,找不到就會報錯



          例如 如下代碼



          (找不到報錯的情況)



          function fn() {

              function fn1() {

                  function fn2() {

                      // 局部訪問 變量 a

              console.log(a) // 2

                  }

                  fn2()

              }

              fn1()

          }

          fn()

          1

          2

          3

          4

          5

          6

          7

          8

          9

          10

          11

          控制臺打印







          (全局變量局部訪問的情況)



          let a = 'hello javascript'

          function fn() {

              function fn1() {

                  function fn2() {

                      // 局部訪問 變量 a

              console.log(a) // hello javascript

                  }

                  fn2()

              }

              fn1()

          }

          fn()

          1

          2

          3

          4

          5

          6

          7

          8

          9

          10

          11

          12

          控制臺打印







          塊級作用域:類似局部作用域



          1)用 {} 包裹一塊



          2)let聲明變量具有塊級作用域,var聲明變量不具有塊級作用域



          例如



          (以字面量對象為例)



          let obj = {

              uname: '法外狂徒-張三',

              age: 68

          }

          1

          2

          3

          4

          想要訪問這個對象里面的屬性必須通過 obj.屬性,而不能直接訪問



          預解析

          預解析:在代碼執行之前把變量和函數會提前解析到當前作用域的最前面



          任何作用域在執行之前都要預解析 (函數優于變量)



          變量:帶有聲明的變量,只定義不賦值



          1)變量在聲明之前被訪問,變量的值為 undefined



          函數:帶有名字的函數,只定義不調用



          1)函數優于變量



          console.log(a) // undefined

          fn() // hello javascript



          function fn() {

              console.log('hello javascript')

          }

          var a = 2

          1

          2

          3

          4

          5

          6

          7

          代碼是自上而下執行,但是在代碼執行前會先進行代碼的預解析,把變量以及函數 聲明 提升到當前作用域的最前面,如上代碼,console.log(a) 會打印 undefined



          但是,注意?。?!注意?。?!



          變量必須是 var 聲明的才可以,如果是 let 聲明的變量會報錯



          圖 (var 聲明的 a)







          圖 (let 聲明的 a)







          變量提升

          預解析會引起變量的提升



          變量不聲明就輸出會報錯



          console.log(a) // 報錯

          1

          控制臺打印







          用 var 聲明



          console.log(a) // undefined



          var a = 'hello javascript'

          1

          2

          3

          控制臺打印 undefined ,我們知道變量定義不賦值會輸出 undefined,說明變量已經存在并且提升了,但是只提升了聲明沒有提升賦值,所以打印 undefined ,如果沒有提升的話,就會像上面一樣在執行 console.log(a) 的時候直接報錯



          結論:var 存在變量提升



          用 let 聲明



          console.log(a) // 報錯



          let a = 'hello javascript'

          1

          2

          3

          結論:let 不存在變量提升



          補充:

          申明變量:let \ var \ const



          1)let 聲明的變量不在window內



          2)var 聲明的變量相當于給window添加了個屬性,let不會



          3)var 聲明的變量不具有塊級作用域,let具有塊級作用域



          4)var 可以重復聲明,let只能聲明一次



          5)const 用來定義常量,不可以改值



          6)const 定義的常量必須初始化有值,let可以不設置值



          建議:常量名字因為是不可以改動的值,所以常量名建議用大寫,一般用于定義固定不變的值




          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:csdn

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          JavaScript -- Map數據結構

          前端達人

          什么是Map

          Map和對象類似都是鍵值對的集合。

          Map和對象的區別

          對象一般用字符串當鍵。

          Map可以用數字、字符串、布爾值、null、undefined、數組、對象、Set、Map等做鍵。
          在這里插入圖片描述

          Map實例的屬性和方法

          set()

          向Map實例中添加新成員,可連續添加。
          如果新成員的鍵已存在,那么新成員將會覆蓋以存在的鍵。
          在這里插入圖片描述

          get()

          通過Map實例的鍵,來訪問其對應的值。

          獲取不存在的成員返回undefined。
          在這里插入圖片描述
          在這里插入圖片描述

          has()

          通過Map實例的鍵,來判斷成員是否存在。
          在這里插入圖片描述

          delete()

          刪除Map實例成員,刪除實例中不存在的成員不報錯。
          在這里插入圖片描述

          clear()

          清空Map實例成員。
          在這里插入圖片描述

          forEach()

          遍歷Map實例成員,接收兩個參數,第一個是一個回調,回調接收三個參數:value、key、Map。第二個參數是是this指向。
          在這里插入圖片描述

          size屬性

          獲取Map成員個數。
          在這里插入圖片描述

          Map構造函數

          二維數組

          在這里插入圖片描述

          Set

          Set必須體現出鍵和值。
          在這里插入圖片描述

          Map

          Map作為參數,傳入構造函數,相當于Map實例的克隆。
          在這里插入圖片描述

          Map注意事項

          Map對于重復鍵的判斷基本遵循 ===,但在Map中NaN ===NaN。

          Map的應用

          操作DOM

           <p>1</p> <p>2</p> <script> const [p1,p2] = document.querySelectorAll('p'); const m = new Map([ [p1,'red'], [p2,'blue'] ]); m.forEach((color, elem) => { elem.style.color = color }) </script> 
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12

          在這里插入圖片描述

          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:csdn

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          解決vagrant上使用Homestead很慢(響應速度10s+)

          前端達人

          說明:

          使用vagrant和Homestead 在vBox上面跑laravel, 響應速度非常緩慢(大概在10+s),

          嘗試過增加虛擬機配置, 但是沒有任何效果, 經驗證也不是數據庫的原因 .

           

          通過網上查詢了解到, 是因為VirtualBox的IO引起的: http://mitchellh.com/comparing-filesystem-performance-in-virtual-machines


          解決方法1:

          在Homestead.yaml下添加type:nfs, 注意空格, map對應windows下面的物理路徑

          解決方法2:
          如果上訴方法, 還是不能增加響應速度(我的就是), 則嘗試以下方法
          安裝一個vagrant 插件


          $ vagrant plugin install vagrant-winnfsd


          然后修改 Homestead/scripts/homestead.rb 的代碼, 循環部分替換成如下:

           

          重啟vagrant 之后, 響應速度已經將至 200 ms


          ----------參考資料
          https://laracasts.com/discuss/channels/general-discussion/for-those-who-find-homesteadvagrantvirtualbox-slow-on-windows?page=1
          http://mitchellh.com/comparing-filesystem-performance-in-virtual-machines


          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:博客園

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          Invalid default value for prop "data": Props with type Object/Array must use a factory function to r

          前端達人

          超級好用

          問題: 

           大致意思是Object/Array類型的Props必須使用工廠函數返回默認值。

           

          問題定位:

           

           

          解決辦法:

          將默認的值以函數的方式進行返回


          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:csdn

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          Java中JSON文檔解析

          前端達人

          1.JSON是什么?

          1. JSON的全稱為JavaScript Object Notation ,也就是JavaScript對象標記法。
          2. JSON是一種輕量級的數據交換格式,用于兩個程序之間的數據交換,類似于XML文檔。

          2.JSON對象格式

          使用JSON表示一個對象的格式:

          {
              "屬性名1":"屬性值1",
              "屬性名2":"屬性值2",
              ......
              "屬性名":"屬性值n"
          }  
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6

          注意事項

          • 一個對象整體由一個大括號表示
          • 對象的屬性,是由一個個鍵值對組成
          • 鍵值對的鍵與值之間應該使用冒號隔開,而不同鍵值對之間需要使用逗號隔開
          • 鍵與值最好都使用雙引號,值可以是JavaScript中的任何一種數據類型

          示例

          {
              "name":"金蘋果",
              "info":"講述了種植蘋果的辛酸歷程"
          }  
          
          • 1
          • 2
          • 3
          • 4

          3.JSON數組表示

          JSON中的數組使用 [ ] 表示,并且數組可以跟對象互相嵌套

          格式:

          [元素1,元素2...]  
          
          • 1

          示例:

          數組包含對象

           ["張三","李四",{
                  "name":"王五",
                  "info":"一個在技術上使勁鉆研的人"
              }]  
          
          • 1
          • 2
          • 3
          • 4

          對象包含數組:

          {
              "name":"李小超",
              "friend":["張三","李四",
                        {
                          "name":"王五",
                          "info":"一個在技術上使勁鉆研的人"
                      }
                       ]
              "info":"一個非常帥氣的人"
          }  
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10

          對象與對象的嵌套:

          {
              "name":"李小超",
              "project":{
                  "school":"HPU",
                  "name":"computer"
              }
          }  
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7

          4.JSON的解析

          1. 使用Gson解析JSON文件

          1. 將Java對象轉換為JSON字符串

            String json = new Gson().toJSON(要轉換的對象);  
                    
            • 1

            代碼示例:

            Book b = new Book("金蘋果","講述了種植蘋果的辛酸路程"); String str = new Gson().toJson(b);  
                    
            • 1
            • 2
          2. 將JSON字符串轉換為Java對象

            對象 = new Gson().fromJson(JSON字符串,對象類型.class);  
                    
            • 1

            代碼示例:

            1. 將JSON字符串轉換為Java對象
             Book b2 = new Gson().fromJson(str, Book.class); System.out.println(b2.getName());  
                    
            • 1
            • 2
            1. 將JSON字符串轉換為Java集合
            String js = "{\"name\":\"金蘋果\",\"info\":\"講述了種植蘋果的辛酸歷程\",\"page\":[\"鋤禾日當午\",\"汗滴禾下土\"]}"; HashMap data = new Gson().fromJson(js,HashMap.class); System.out.println(data.get("page").getClass()); /*
                輸出結果:class java.util.ArrayList
            */  
                    
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7

            我們在寫JSON字符串的時候,需要注意使用轉義字符轉換雙引號,另外,如果鍵值對的值是JSON數組,那么對應數組在轉換之后的類型是ArrayList

          2. 使用fastJson解析JSON文件

          使用fastJSON解析與Gson十分相似,不過前者使用的是靜態方法。

          1. Java對象轉換為JSON字符串

            String json=JSON.toJSONString(要轉換的對象);  
                    
            • 1
          2. JSON字符串轉換為Java對象

            類型 對象名=JSON.parseObject(JSON字符串, 類型.class);
            或者
            List<類型> list=JSON.parseArray(JSON字符串,類型.class);  
                    
            • 1
            • 2
            • 3

            示例:
            轉換為Java對象

             Book b2 = JSON.parseObject(json1,Book.class);  
                    
            • 1

            轉換為List集合

            List list = JSON.parseArray(json1,String.class);  
                    
            • 1

            在這里進行說明一下,我們觀察JSON.parseArray()的源碼可以看到,這個方法的返回值就是一個List類型的數據,我們向方法中傳遞的第二個參數是List元素所屬的類型。
            、


            藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

            文章來源:csdn

            分享此文一切功德,皆悉回向給文章原作者及眾讀者.
            免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

            藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務



          JavaScript|異步編程

          前端達人

          JavaScript|異步編程

          1.異步的概念

          **異步(Asynchronous, async)是與同步(Synchronous, sync)**相對的概念。在我們學習的傳統單線程編程中,程序的運行是同步的(步驟在一個控制流序列中按順序執行)。而異步的概念則是不保證同步的概念,也就是說,一個異步過程的執行將不再與原有的序列有順序關系。簡單來理解就是:同步按你的代碼順序執行,異步不按照代碼順序執行,異步的執行效率更高。異步就是從主線程發射一個子線程來完成任務。

          2.回調函數

          回調函數就是一個函數,它是在我們啟動一個異步任務的時候就告訴它:等你完成了這個任務之后要干什么。這樣一來主線程幾乎不用關心異步任務的狀態了。

          <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>異步編程</title> </head> <body> <p>等待4秒過后執行</p> <p id="p2">太陽</p> <p id="p3">月亮</p> <script> // 回調函數 function sayHello(){ document.getElementById("p2").innerHTML = "Hello!Sun"; } // 使用setTimeout()可以設置sayHello為一個4秒的過程,第一個參數是回調函數,第二個參數是毫秒數 setTimeout(sayHello,4000); </script> </body> </html> 
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22

          在這里插入圖片描述

          等待四秒過后:

          在這里插入圖片描述

          主線程并未停止,body中的內容正常運行,而當4秒回調過后,子函數運行結果就改變了h2的值。




          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:csdn

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務


          vue 封裝dialog_Vue 彈出框組件的完整封裝過程

          前端達人

          引言

          因為項目搬磚需要,筆者從 2019 年 11 月份開始學習 Vue.js,在完整地敲了一遍 vue-admin 框架中的用戶管理 Demo 、斷點跟蹤前端調用流程、并摸清楚了 Vue.js 的開發套路后,總算可以出師了。

          寫作本文有兩個原因,一是對這段時間學習 Vue.js 的過程做一個總結;另外就是完成自己 2019 下半年在 GitChat 的寫作目標,8 月份曾在一個知識星球公布了下半年寫兩篇 Chat 的目標,遲遲沒有完成。

          以上就是本文產生的背景了,再說回到 Vue.js。筆者年初也弄了一陣兒 Angular.js,雖然都是前端框架,感覺 Vue.js 入門更簡單一些,其數據驅動的設計理念跟 Java 面向對象編程的思維模式相似,所以學起來更輕松。

          之所以選擇彈框組件這個話題,是因為筆者參與的新產品中,很多地方都涉及到彈出頁面,所以仔細研究了一下彈框組件的封裝原理,解決了彈出頁面封裝的技術問題后,筆者這半路前端也能夠應付一陣子開發工作了!

          環境準備

          Vue 開發相關的工具及其關系回顧,這里先回憶一下跟 Vue 項目開發有關的概念:

          名詞

          解釋

          作用

          Vue.js

          一個前端框架

          用于構建用戶界面的漸進式框架

          *.vue 文件

          一種文件類型

          以類 HTML 語法描述一個 Vue 組件

          vue-cli

          Vue 官方腳手架

          對單個 *.vue 文件進行快速原型開發

          eslint

          前端代碼檢查工具

          編寫高質量前端代碼的利器,類似 findbugs

          webpack

          模塊打包器

          類似 maven,將前端項目打包成靜態資源文件

          IDEA Vue.js 插件

          IDEA 插件

          使 IDEA 能夠支持 Vue 項目開發

          我們在使用 IDEA 開發 Vue 項目時,只需要安裝 Vue.js 插件就可以了,不需要使用 vue-cli 腳手架;引入 ESLint 是為了編寫高質量的前端代碼,也可以不用,而且 IDEA 的快速修正功能很強大,不需要完全了解 ESLint 規范;至于打包工具 webpack,初學完全可以先忽略它。

          GitHub 上有一個 Vue 的半成品項目 vueAdmin-template,可以基于它來學習或者二次開發,本文也是在它基礎上完成一個彈框組件學習案例的。這里使用 IDEA 作為開發工具,相關準備工作如下:

          IDEA 安裝 Vue.js 插件;

          IDEA 安裝 eslint 插件;

          IDEA 添加 .vue 文件模板;

          IDEA 導入 vueAdmin-template,項目地址。

          常見的幾種彈出框類型

          Web 開發過程中常用的彈框,歸納起來,主要有三類:

          消息提示框,即 alert,不需要進行操作;

          操作確認框,即 confirm,包含“確定”和“取消”按鈕;

          頁面彈出框,即 openwindow,彈出一個完整的頁面,用戶輸入信息后,通過“確定”或“取消”提交信息。

          第一、二類彈出框,ElementUI 都有封裝,拿來用即可;第三類彈出框,可以結合 el-dialog 組件完成。 在筆者參與的項目中,彈出頁面的特點在于,父組件彈出子組件后,用戶需要在彈出頁面配置信息、點擊“確定”按鈕提交。



          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          文章來源:csdn

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合