vue卡片式點(diǎn)擊切換圖片組件使用詳解
本文實(shí)例為大家分享了vue卡片式點(diǎn)擊切換圖片組件,供大家參考,具體內(nèi)容如下
因?yàn)楣緲I(yè)務(wù)的問(wèn)題,最近在寫(xiě)vue項(xiàng)目,有了一個(gè)卡片圖片的點(diǎn)擊的需求,自己又不想寫(xiě)動(dòng)畫(huà)效果,就偷個(gè)懶,采用vue是以數(shù)據(jù)驅(qū)動(dòng)的原理,寫(xiě)了一個(gè)不太完整的vue組件,為了簡(jiǎn)單,就直接上代碼吧
全部代碼
未進(jìn)行props傳參設(shè)置,以后完善(簡(jiǎn)單最好嘛)
<template>
<!--
*以數(shù)據(jù)驅(qū)動(dòng)的card式展示圖片(無(wú)動(dòng)畫(huà)效果)
* -->
<div class="cardBanner">
<ul>
<li v-for="(item,index) in cardData" :key="index">
<a href="#">
<img :src="item.src" alt="">
<p>這圖片的描述{{item.order}}</p>
</a>
</li>
<div class="arrow-left" @click="toggleFun(-1)"><</div>
<div class="arrow-right" @click="toggleFun(1)">></div>
</ul>
</div>
</template>
<script>
export default {
data(){
return {
cardData: [
{id:1,src:require('../assets/images/banner.jpg'),},
{id:2,src:require('../assets/images/text.jpg')},
{id:3,src:require('../assets/images/組6@2x.png')},
{id:4,src:require('../assets/images/text.jpg')},
{id:5,src:require('../assets/images/banner.jpg')}
]
}
},
methods: {
//通過(guò)函數(shù)改變數(shù)據(jù)從而達(dá)到視圖的改變
toggleFun(p){
this.cardData = this.cardData.map((item,index,array) => {
if(index===array.length-1&&p===1){
item = array[0]
}
else if(index===0&&p===-1){
item = array[array.length-1];
}else{
item = array[index+p];
}
return item;
})
}
}
}
</script>
<style scoped>
.cardBanner{
padding: 10px 30px;
background-color: #fff;
border: 1px solid #ccc;
position: relative;
}
.cardBanner ul{
display: flex;
overflow: scroll; /*設(shè)置滾動(dòng)條*/
}
.cardBanner ul::-webkit-scrollbar{ /*隱藏滾動(dòng)條*/
display: none;
}
.cardBanner ul>li{ //高能部分,flex不太好解釋
width: 31.33333%;
flex-shrink: 0;
padding-left: 3%;
text-align: center;
}
.cardBanner ul>li:first-child{
padding-left: 0;
}
.cardBanner ul>li a{
display: block;
width: 100%;
height: 100%;
}
.cardBanner ul>li img{
width: 100%;
height: 170px;
border-radius: 5px;
}
.cardBanner ul>li p{
margin: 0;
}
[class^='arrow']{
font-size: 30px;
transform: scaleX(.7);
color: #ddd;
}
.arrow-left{
position: absolute;
left: 5px;
top: 50%;
margin-top: -17px;
}
.arrow-right{
position: absolute;
right: 5px;
top: 50%;
margin-top: -17px;
}
</style>
效果展示

稍微講一下,采用flex!!!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
uniapp使用scroll-view下拉刷新無(wú)法取消的坑及解決
這篇文章主要介紹了uniapp使用scroll-view下拉刷新無(wú)法取消的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Element?Table行的動(dòng)態(tài)合并及數(shù)據(jù)編輯示例
這篇文章主要為大家介紹了Element?Table行的動(dòng)態(tài)合并及數(shù)據(jù)編輯示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
vue使用技巧及vue項(xiàng)目中遇到的問(wèn)題
這篇文章主要介紹了vue使用技巧及vue項(xiàng)目中遇到的問(wèn)題,本文給大家?guī)?lái)的只是一部分,后續(xù)還會(huì)持續(xù)更新,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-06-06
vue路由history模式頁(yè)面刷新404解決方法Koa?Express
這篇文章主要為大家介紹了vue路由history模式頁(yè)面刷新404解決方法(Koa?Express)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Vue.js 點(diǎn)擊按鈕顯示/隱藏內(nèi)容的實(shí)例代碼
下面小編就為大家分享一篇Vue.js 點(diǎn)擊按鈕顯示/隱藏內(nèi)容的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
在vue中獲取wangeditor的html和text的操作
這篇文章主要介紹了在vue中獲取wangeditor的html和text的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
vue中使用vee-validator完成表單校驗(yàn)方案
vee-validator是一種基于vue模板的輕量級(jí)校驗(yàn)框架。本文主要討論的是vee-validator校驗(yàn)方案,感興趣的朋友跟隨小編一起看看吧2019-11-11
vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果
這篇文章主要介紹了vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果,本文分步驟通過(guò)實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下2019-11-11

