Vue:圖片切換


本來還有個v-bind指令沒寫筆記,懶得寫了,至於怎么用,就一並在這里記錄吧。

首先我們這次想要實現的是圖片的切換,有兩個按鈕可以向左和向右切換圖片。第一張圖片由於其左邊沒有圖片了,因此此時的左按鈕應隱藏,同理當處於最后一張圖片時應隱藏右按鈕。

實現邏輯比較簡單,但是我們一共要用到好幾個v指令。例如上面按鈕的隱藏需要用到v-show指令;操作圖片要用到v-bind指令,所以這個指令是用來操作元素屬性的;然后還有點擊事件等等。在這次的代碼中我們全部采用簡寫方式。

首先,圖片,我們怎么實現圖片的來回切換呢?使用數組唄!我們搞一個數組專門來存儲這些圖片就好了。這時,自然還需要一個index來表示數組的索引,點擊左右按鈕實際改變的就是這個index值。

好了,現在開工!

對於圖片顯示的html結構,我們就先寫一個大的div塊,然后在這個div塊里面先是向前翻的圖標,然后是圖片,最后是向后翻的圖標。

那么首先,我們自然要在data里面,定義兩個變量,分別是數組imgArr和索引index.數組我們就把所有需要用到的圖片保存到我們的項目文件下,然后把路徑名保存到數組里,接着,索引的初始值我們定為0.然后我們寫兩個函數,分別是prev函數和next函數,分別表示向前翻和向后翻,這兩個函數是要綁定到對應的按鈕上去的。然后,為了控制在顯示第一張和最后一張圖片時,對應的按鈕要消失不見,我們必須在對應圖片上html代碼上寫上v-show指令。怎么寫呢?很簡單,第一張圖片,只需要寫上index!=0就可以了;而最后一張,只需要寫上index<imgArr.length-1就行了。(至於為什么是減一,自己試試就知道了)

在中間顯示圖片的img標簽下,src我們需要給定imgArr數組的值,中間是啥呢?index.這個,就是v-bind指令的應用,操作屬性。

這樣一來,就大功完成了,最后把完成的兩個函數綁定到對應位置處就OK了。

我的代碼長這樣:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Title</title>
</head>
<body>
    <div id="mask">
        <div id="center">
            <a href="javascript:void(0)" v-show="index!=0" @click="prev" class="left">
                <img src="prev.png" alt="">
            </a>
            <img :src="imgArr[index]" alt="">
            <a href="javascript:void(0)" v-show="index<imgArr.length-1" @click="next" class="right">
                <img src="next.png" alt="">
            </a>
        </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el:"#mask",
            data:{
                imgArr:[
                    "蓋亞太帥了!.png",
                    "看這一腳踢的!.png",
                    "有陰謀!.png",
                    "打贏了!.png",
                    "被打懵了.png",
                    "啊!.png",
                    "我倒了.png",
                    "蓋亞!.png",
                    "壞了,蓋亞被怪獸鉗住了.png",
                    "阿古菇,你要連我一塊兒消滅嗎!?.png",
                    "戴拿和哥爾贊這深情的對視.png",
                    "戴拿:我把你當兄弟,你居然牽我小手手?.png",
                ],
                index:0
            },
            methods:{
                prev:function () {
                    --this.index;
                },
                next:function () {
                    ++this.index;
                }
            }
        })
    </script>
</body>
</html>

隨便放兩張看看效果吧:

 

 

 

 最后再補充一點:蓋亞奧特曼真TM帥!不接受反駁。


免責聲明!

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



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