vue制作點(diǎn)擊切換圖片效果的詳細(xì)思路與步驟
思路
創(chuàng)建一個(gè)數(shù)組,數(shù)組里面放入圖片,利用props(父組件向子組件傳值),v-for(循環(huán)),v-bind(綁定屬性)將圖片傳入HTML定義的div中。
Ⅰ.在頭部導(dǎo)入vue文件(導(dǎo)入前提是vue文件已被引入js中)
<script src="js/vue.js"></script>
Ⅱ.在HTML中創(chuàng)建一個(gè)z-div(可根據(jù)自己喜好命名),用來(lái)接收組件的傳值,用v-for使數(shù)組元素遍歷循環(huán)以此顯示圖片,v-bind綁定im(im定義在script標(biāo)簽中的全局組件中),變量i傳入im中。
<div id="app"> <z-div v-for="i in img" :im="i"></z-div> </div>
Ⅲ.定義一個(gè)組件<template>,里面寫(xiě)入需要傳給z-div的數(shù)據(jù),用v-bind綁定src元素,接受組件的傳值。
<template id="imgs"> <div id="box" @click="change"> <img :src="im" alt="" v-show="show"> </div> </template>
Ⅳ.在script標(biāo)簽里面定義一個(gè)全局組件(全局組件要在創(chuàng)建Vue實(shí)例之前注冊(cè)),并使用props屬性定義一個(gè)im(數(shù)組中的im是變量通過(guò)屬性綁定,綁定到子組件身上)。
Vue.component( 'z-div', { template: '#imgs', props: [ 'im' ], data: function () { return { show: true } }, methods: { change: function () { this.show = !this.show } } } )
Ⅴ.定義一個(gè)新的Vue,并在里面定義一個(gè)數(shù)組,里面放入我們需要的圖片。
var vm = new Vue( { el: '#app', data: { img: [ 'img/222_01.jpg', 'img/222_02.jpg', 'img/222_03.jpg', 'img/222_04.jpg', 'img/222_05.jpg', 'img/222_06.jpg', 'img/222_07.jpg', 'img/222_08.jpg', 'img/222_09.jpg', 'img/222_10.jpg', 'img/222_11.jpg', 'img/222_12.jpg', 'img/222_13.jpg', 'img/222_14.jpg', 'img/222_15.jpg', 'img/222_16.jpg', 'img/222_17.jpg', 'img/222_18.jpg', 'img/222_19.jpg', 'img/222_20.jpg', 'img/222_21.jpg', 'img/222_22.jpg', 'img/222_23.jpg', 'img/222_24.jpg', 'img/222_25.jpg' ] } } )
Ⅵ.編輯樣式
* { margin: 0; padding: 0; } #app { width: 550px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-around; } img { width: 108px; height: 138px; } #box { width: 108px; height: 138px; background-color: pink; margin: 1px 0px; }
效果圖如下
完整代碼
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title></title> // 引入vue <script src="js/vue.js"></script> <style> * { margin: 0; padding: 0; } #app { width: 550px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-around; } img { width: 108px; height: 138px; } #box { width: 108px; height: 138px; background-color: pink; margin: 1px 0px; } </style> </head> <body> <div id="app"> //v-for定義循環(huán),v-bind綁定屬性 <z-div v-for="i in img" :im="i"></z-div> </div> <template id="imgs"> <div id="box" @click="change"> <img :src="im" alt="" v-show="show"> </div> </template> <script> Vue.component( 'z-div', { template: '#imgs', //父組件向子組件傳值 props: [ 'im' ], data: function () { return { show: true } }, methods: { change: function () { this.show = !this.show } } } ) var vm = new Vue( { el: '#app', data: { img: [ 'img/222_01.jpg', 'img/222_02.jpg', 'img/222_03.jpg', 'img/222_04.jpg', 'img/222_05.jpg', 'img/222_06.jpg', 'img/222_07.jpg', 'img/222_08.jpg', 'img/222_09.jpg', 'img/222_10.jpg', 'img/222_11.jpg', 'img/222_12.jpg', 'img/222_13.jpg', 'img/222_14.jpg', 'img/222_15.jpg', 'img/222_16.jpg', 'img/222_17.jpg', 'img/222_18.jpg', 'img/222_19.jpg', 'img/222_20.jpg', 'img/222_21.jpg', 'img/222_22.jpg', 'img/222_23.jpg', 'img/222_24.jpg', 'img/222_25.jpg' ] } } ) </script> </body> </html>
注:如果想要最初圖片不顯示,點(diǎn)擊顯示圖片效果的話,將下圖位置show的值改為false即可
總結(jié)
到此這篇關(guān)于vue制作點(diǎn)擊切換圖片效果的文章就介紹到這了,更多相關(guān)vue點(diǎn)擊切換圖片效果內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue業(yè)務(wù)實(shí)例之組件遞歸及其應(yīng)用
目中出現(xiàn)多級(jí)菜單時(shí),需要多層for循環(huán)時(shí),但是當(dāng)菜單增加層級(jí)時(shí),需要在頁(yè)面結(jié)構(gòu)中增加一層for循環(huán),這時(shí)我們可以使用組件遞歸的思想來(lái)實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于vue業(yè)務(wù)實(shí)例之組件遞歸及其應(yīng)用的相關(guān)資料,需要的朋友可以參考下2022-05-05去除Element-Plus下拉菜單邊框的實(shí)現(xiàn)步驟
Element-Plus 是 Element UI 的 Vue 3 版本,它提供了一套完整的組件庫(kù),在使用 Element-Plus 進(jìn)行開(kāi)發(fā)時(shí),我們可能會(huì)遇到需要自定義組件樣式的情況,本文將介紹如何使用 CSS 來(lái)去除 Element-Plus 下拉框的邊框,需要的朋友可以參考下2024-03-03Vue+Echarts實(shí)現(xiàn)繪制動(dòng)態(tài)折線圖
這篇文章主要為大家詳細(xì)介紹了如何利用Vue和Echarts實(shí)現(xiàn)繪制動(dòng)態(tài)折線圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03vue 自動(dòng)化路由實(shí)現(xiàn)代碼
這篇文章主要介紹了vue 自動(dòng)化路由實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09vue滾動(dòng)條滾動(dòng)到頂部或者底部的方法
這篇文章主要給大家介紹了關(guān)于vue滾動(dòng)條滾動(dòng)到頂部或者底部的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08vue-lazyload圖片延遲加載插件的實(shí)例講解
下面小編就為大家分享一篇vue-lazyload圖片延遲加載插件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02