vue卡片式點擊切換圖片組件使用詳解
本文實例為大傢分享瞭vue卡片式點擊切換圖片組件,供大傢參考,具體內容如下
因為公司業務的問題,最近在寫vue項目,有瞭一個卡片圖片的點擊的需求,自己又不想寫動畫效果,就偷個懶,采用vue是以數據驅動的原理,寫瞭一個不太完整的vue組件,為瞭簡單,就直接上代碼吧
全部代碼
未進行props傳參設置,以後完善(簡單最好嘛)
<template> <!-- *以數據驅動的card式展示圖片(無動畫效果) * --> <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/組[email protected]')}, {id:4,src:require('../assets/images/text.jpg')}, {id:5,src:require('../assets/images/banner.jpg')} ] } }, methods: { //通過函數改變數據從而達到視圖的改變 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; /*設置滾動條*/ } .cardBanner ul::-webkit-scrollbar{ /*隱藏滾動條*/ 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!!!
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。