【VueJS】對 文本框/圖片框 進行操作(刪除、上移、下移和插入)


  公司的一個APP項目,要求做一個商品詳情編輯頁,很簡單,只是走了點彎路,僅以此記錄。

    頁面可以在文本框內輸入文本和插入圖片。

    在文本框底部還有操作的按鈕。

    效果圖如微店的效果。

-----------------------------------------------------------------------------------------------------

  流程:

  點擊“添加內容”時,底部彈出選擇插入 文本框 還是 圖片框 按鈕。

  點擊文本按鈕,則在內容底部添加空文本框。點擊圖片按鈕,則上傳圖片並在底部添加圖片。

  文本框和圖片底部都有操作按鈕。

  • 刪除按鈕:顧名思義。
  • 上移按鈕:將該內容與上一個內容調換位置。
  • 下移按鈕:與上移按鈕一樣的邏輯。
  • 插入按鈕:在該內容下方插入一個內容。

  思路:

  一開始繞了點彎路,沒有用數組,這種情況毫無疑問要用數組來實現。

  一開始打算用兩個數組來實現,一個臨時空數組 temList 做循環用,另外一個數組 contentList 做內容存放數組。后來一想,只用一個數組就完事了。

  所以我就用數組 contentList 來完成這個功能。

  • 首先頁面 v-for="(item, index) in contentList" 循環這個數組,並判斷值為空則顯示一個文本框,值不為空則是圖片,直接顯示出來。
  • 每當點擊“添加內容”時,數組push一個值。文字為空字符串 '',圖片為 '<img src="url/image.jpg">'。
  • 操作按鈕在標簽上的點擊事件 @click="function(index)" 將index傳過去。拿到 index ,接下來就是數組操作了,並沒有什么難度。
    • 刪除和插入都可以用 splice 函數
    • 上下移則用需要用到 Vue.set(arr, index, value) 。因為直接用 arr[index] = value 這種方法不觸發vue的dom更新。
    • 另外需要注意的是下移和插入操作用到 index + 1 ,需要改為 parseInt(index) + 1 ,原因你懂的。
    • 在插入圖片的時候,ios端沒有出現滾動條,在數組插入圖片后加入下面代碼解決這個問題:
      • var h = $('.calss').height();
      • $(.class').height(h+0.1);

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM