最近的項目有個需求是,這種單頁多圖一次滾動一張圖片的輪播效果,項目組件庫是antd 然而用了antd的走馬燈是這樣子的 我們可以看到官網給的api是沒有這種功能,百度上也多是在css上動刀,那樣也就畢竟繁瑣了,我們是什麼?我們是程式猿啊,程式猿就該有程式猿的樣子,怎麼能寫繁瑣的東西呢,那還怎麼為公司 ...
最近的項目有個需求是,這種單頁多圖一次滾動一張圖片的輪播效果,項目組件庫是antd
然而用了antd的走馬燈是這樣子的
我們可以看到官網給的api是沒有這種功能,百度上也多是在css上動刀,那樣也就畢竟繁瑣了,我們是什麼?我們是程式猿啊,程式猿就該有程式猿的樣子,怎麼能寫繁瑣的東西呢,那還怎麼為公司項目提高效率!!!(我哪敢說是為了摸魚啊)
為了追求摸魚的真諦我仔細查閱了文檔https://github.com/vueComponent/ant-design-vue/blob/master/components/vc-slick/src/default-props.js#L3
奈何內容太多看得我眼花繚亂,最後通過我看字面意思一個個嘗試,功夫不負有心人,就是它啦去吧皮卡丘
:slides-to-show="5"//單頁展示5張圖片 :slides-to-scroll="1" //每次滾動1張圖片
1 <template> 2 <!-- 推薦品牌 --> 3 <div class="recommended_brand"> 4 <h2>推薦品牌</h2> 5 <div class="subscript"></div> 6 <!-- 推薦商品輪播圖 --> 7 <div class="rotation_chart"> 8 <a-carousel arrows autoplay dots="false" :slides-to-show="5" :slides-to-scroll="1"> 9 <div slot="prevArrow" class="custom-slick-arrow"> 10 <img src="@/assets/img/home/recommend_left.png" /> 11 </div> 12 <div slot="nextArrow" class="custom-slick-arrow"> 13 <img src="@/assets/img/home/recommend_right.png" /> 14 </div> 15 <div> 16 <h3>1</h3> 17 </div> 18 <div> 19 <h3>2</h3> 20 </div> 21 <div> 22 <h3>3</h3> 23 </div> 24 <div> 25 <h3>4</h3> 26 </div> 27 <div> 28 <h3>5</h3> 29 </div> 30 <div> 31 <h3>6</h3> 32 </div> 33 <div> 34 <h3>7</h3> 35 </div> 36 </a-carousel> 37 </div> 38 </div> 39 </template>
1 <style scoped> 2 /* For demo */ 3 .ant-carousel >>> .slick-slide { 4 text-align: center; 5 height: 72px; 6 width: 186px; 7 line-height: 72px; 8 background: #5e82c6; 9 overflow: hidden; 10 } 11 12 .ant-carousel >>> .custom-slick-arrow { 13 width: 25px; 14 height: 25px; 15 font-size: 25px; 16 color: #fff; 17 /* background-color: rgba(31, 45, 61, 0.11); */ 18 opacity: 0.8; 19 } 20 .ant-carousel >>> .custom-slick-arrow:first-child { 21 left: -30px; 22 } 23 .ant-carousel >>> .custom-slick-arrow:last-child { 24 right: -30px; 25 } 26 .ant-carousel >>> .custom-slick-arrow:before { 27 display: none; 28 } 29 .ant-carousel >>> .custom-slick-arrow:hover { 30 opacity: 1; 31 } 32 33 .ant-carousel >>> .slick-slide h3 { 34 color: #fff; 35 } 36 </style>
最後來個效果展示