最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue 檢測用戶上傳圖片寬高的方法

 更新時間:2020年02月06日 15:57:24   作者:fox_charon  
這篇文章主要介紹了vue 檢測用戶上傳圖片寬高的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

需求:

用戶可上傳3-6張圖片(第 1 2 3 張必須傳),上傳的圖片必須是540 * 330 像素。

第一步,獲取上傳的圖片的寬高。

初始化一個對象數(shù)組,寬高均設(shè)為0。

如果用戶上傳的圖片沒有上限,可以動態(tài)修改這個對象數(shù)組。

data:

  picArray:[
  {
   width:0,
   height:0
  },
  {
   width:0,
   height:0
  },
  {
   width:0,
   height:0
  },
  {
   width:0,
   height:0
  },
  {
   width:0,
   height:0
  },
  {
   width:0,
   height:0
  }
  ],

HTML:

<myupload :keys="index" @getBase="getUpImg">
    
</myupload>

myupload是上傳圖片的組件,略。 

methods:

 getUpImg(imgurl, keys){
  if(keys === 9){
  this.submitData.logo_img = imgurl
  this.logoImgCount = true
  } else {
  Vue.set(this.imgListArray,keys,imgurl)
  
  this.$nextTick(function(){
   let img = document.getElementById('picId' + keys)
   // console.log(img)
   let picArray = this.picArray
   img.onload = function () {
   console.log(keys)
   console.log(this.naturalWidth)
   console.log(this.naturalHeight)
   let o = {
    width: this.naturalWidth,
    height: this.naturalHeight
   }
   Vue.set(picArray,keys,o)
   console.log('picArray', picArray)
   }
  })
  }  
 },

關(guān)鍵的代碼用紅色標出了。

值得注意的是:獲取寬高必須用 this.$nextTick ,里面再寫 img.onload 。this.naturalWidth 是圖片原本的寬高。此時 this 指的是當前圖片對象。

 第二步,提交之前檢驗圖片的寬高。

methods:

 imageCheck(){
  let checkboolean = true
  let check = {
  'width': [[540],[0,540]],
  'height': [[330],[0,330]]
  }
  let f1 = function (num,index,type) {
  let n = num
  let i = index
  let t = type
  let b = false
  // console.log(n,i,t)
  for (let x = 0; x < check[type][i].length; x++) {
   if (check[type][i][x] === num) {
   // console.log('>>>>>>>>>>>>>' + check[type][i][x] + '===' + num + '>>>>>>>>>>>>>>>>' )
   b = true
   }   
  }
  return b
  }
  for (let i = 0; i < this.picArray.length; i++) {

  let cb = true

  for (let x in this.picArray[i]) {
   let number = this.picArray[i][x]
   // console.log(x,number)
   if (x === 'width' && i < 3) {
   checkboolean = f1(number, 0, 'width')
   if (!checkboolean) {
    // console.log('=================',i,x,number,'return false')
    cb = false
    break
   }
   } else if (x === 'width' && i >= 3) {
   checkboolean = f1(number, 1, 'width')
   if (!checkboolean) {
    // console.log('=================',i,x,number,'return false')
    cb = false
    break
   }
   } else if (x === 'height' && i < 3) {
   checkboolean = f1(number, 0, 'height')
   if (!checkboolean) {
    // console.log('=================',i,x,number,'return false')
    cb = false
    break
   }
   } else if (x === 'height' && i >= 3) {
   checkboolean = f1(number, 1, 'height')
   if (!checkboolean) {
    // console.log('=================',i,x,number,'return false')
    cb = false
    break
   }
   }
  }

  if (!cb) {
   break
  }
  }
  return checkboolean
 },


// sumbit function
...
  if(!this.imageCheck()){
  this.$message({
   message: this.MASSAGE_imagecheck,
   type: 'error'
  });
  return false
  }
  alert('可以傳圖')
...

$message 是elementUI的組件。

imageCheck 就是檢驗圖片寬高用的方法。返回布爾值,false表示圖片寬高不符合要求(或者沒有傳圖)。

其中:

checkboolean 是最終要返回的布爾值。

check 是裝載合法寬高值的對象。因為后3張圖可傳可不傳,所以 width 和 height 都是二階數(shù)組。數(shù)字是符合要求的值。

f1 是檢驗?zāi)骋粡垐D寬高的函數(shù),傳入寬高值、下標(第幾張)、類型(width height),返回布爾值,false表示圖片寬高不符合要求(或者沒有傳圖)。

執(zhí)行 imageCheck 方法的時候會直接執(zhí)行循環(huán),如果發(fā)現(xiàn)圖片不符合要求就跳出并返回 false 給函數(shù)外。

里循環(huán)中的 x 代表類型,i 代表下標。

使用:在提交時執(zhí)行 imageCheck 方法即可。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue3實現(xiàn)點擊空白區(qū)域隱藏div

    vue3實現(xiàn)點擊空白區(qū)域隱藏div

    這篇文章主要介紹了vue3實現(xiàn)點擊空白區(qū)域隱藏div方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Vue數(shù)據(jù)驅(qū)動試圖的實現(xiàn)方法及原理

    Vue數(shù)據(jù)驅(qū)動試圖的實現(xiàn)方法及原理

    當Vue實例中的數(shù)據(jù)(data)發(fā)生變化時,與之相關(guān)聯(lián)的視圖(template)會自動更新,反映出最新的數(shù)據(jù)狀態(tài), Vue的數(shù)據(jù)驅(qū)動視圖是通過其響應(yīng)式系統(tǒng)實現(xiàn)的,以下是Vue數(shù)據(jù)驅(qū)動視圖實現(xiàn)的核心原理,需要的朋友可以參考下
    2024-10-10
  • vue中如何實現(xiàn)拖拽調(diào)整順序功能

    vue中如何實現(xiàn)拖拽調(diào)整順序功能

    這篇文章主要介紹了vue中如何實現(xiàn)拖拽調(diào)整順序功能問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue.js單文件組件中非父子組件的傳值實例

    vue.js單文件組件中非父子組件的傳值實例

    今天小編就為大家分享一篇vue.js單文件組件中非父子組件的傳值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue axios請求成功卻進入catch的原因分析

    vue axios請求成功卻進入catch的原因分析

    這篇文章主要介紹了vue axios請求成功卻進入catch的原因分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Vue3處理大數(shù)據(jù)量渲染和優(yōu)化的方法小結(jié)

    Vue3處理大數(shù)據(jù)量渲染和優(yōu)化的方法小結(jié)

    在現(xiàn)代Web應(yīng)用中,隨著用戶數(shù)據(jù)和交互的復雜性增加,如何高效地處理大數(shù)據(jù)量渲染成為了前端開發(fā)的重要環(huán)節(jié),本文將以Vue 3為例,探討如何優(yōu)化大數(shù)據(jù)量渲染,提升應(yīng)用性能,需要的朋友可以參考下
    2024-07-07
  • Vue使用v-model收集各種表單數(shù)據(jù)、過濾器的示例詳解

    Vue使用v-model收集各種表單數(shù)據(jù)、過濾器的示例詳解

    這篇文章主要介紹了Vue使用v-model收集各種表單數(shù)據(jù)、過濾器的示例,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Vuejs從數(shù)組中刪除元素的示例代碼

    Vuejs從數(shù)組中刪除元素的示例代碼

    這篇文章主要介紹了Vuejs從數(shù)組中刪除元素的示例代碼,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Vue實現(xiàn)底部側(cè)邊工具欄的實例代碼

    Vue實現(xiàn)底部側(cè)邊工具欄的實例代碼

    這篇文章主要介紹了Vue實現(xiàn)底部側(cè)邊工具欄的實例代碼,文中通過分享一段代碼介紹vue 側(cè)邊導航欄遞歸顯示功能,需要的朋友可以參考下
    2018-09-09
  • vue2如何使用face-api.js實現(xiàn)人臉識別功能

    vue2如何使用face-api.js實現(xiàn)人臉識別功能

    本文介紹了如何在Vue.js項目中利用face-api.js實現(xiàn)人臉識別功能,首先需要安裝Vue.js和face-api.js以及其依賴TensorFlow.js,接著,下載并配置必要的模型文件到項目目錄,之后,將人臉識別功能封裝成Vue組件,并在組件中通過視頻流進行人臉檢測和結(jié)果展示
    2024-09-09

最新評論

太原市| 子洲县| 新蔡县| 法库县| 靖安县| 洪泽县| 普陀区| 长海县| 佛教| 玉门市| 家居| 富平县| 错那县| 阿拉善左旗| 巴林左旗| 砀山县| 东港市| 沙雅县| 禹州市| 藁城市| 衡南县| 买车| 监利县| 昌平区| 衡阳市| 正宁县| 通州市| 永福县| 运城市| 宜城市| 麻江县| 永修县| 定安县| 富宁县| 宁安市| 义马市| 云南省| 阿拉善盟| 周口市| 江油市| 瑞丽市|