scroll组件
index.vue页面
:spinning="localLoading"> class="venus-card-row" v-show="localDataSource.length>0"> :sm="span.sm" :md="span.md" :lg="span.lg" :xl="span.xl" :xxl="span.xxl" v-for="row in localDataSource" :key="row[rowKey]" class="venus-card"> @click="(e)=> imgClick(row[icon], e)">class="card-img" />
v-if="checkIconNum(row[icon])">{{ checkIconNum(row[icon]).length }}
{{ row[title] }}
{{ row[description] }} :row="row"> :image="emptyImg" :image-style="{ height: '100px',}"> 暂无数据 v-if="localDataSource.length>0"> class="footer-pagination"> :total="localPagination.total" v-model="localPagination.current" @change="loadData" /> :footer="null" @cancel="previewVisible = false" class="venus-card-modal" width="50%" :bodyStyle="{ padding: 0 }"> class="venus-card-carousel" v-if="previewVisible"> slot-scope="props">
for="(item, index) in imgData" :key="index">![]()
index.less
@import '../../index.less'; .venus-card-wrapper { .ant-empty { .ant-empty-image { margin-top: 40px; } height: 300px; border: 1px solid #eaeaea; margin: 0px; } .venus-card-row { border-top: 1px solid #eaeaea; border-left: 1px solid #eaeaea; } .venus-card { padding: 50px 36px; border: 1px solid #eaeaea; border-top: none; border-left: none; .card-box { transition: all 0.6s ease 0s; } &:hover { .card-img { transform: scale(1.2); -ms-transform: scale(1.2); -webkit-transform: scale(1.2); -moz-transform: scale(1.2); /* Firefox */ -o-transform: scale(1.2); /* Opera */ } .card-img-box { &::after { height: 100%; opacity: 1; } &::before { top: 50%; opacity: 1; } } .card-title { color: @primary-color !important; } } .card-img-box { width: 100%; height: 150px; overflow: hidden; cursor: pointer; position: relative; .img-count { position: absolute; bottom: 0px; right: 0px; height: 24px; width: 32px; font-size: 12px; color: rgb(221, 221, 221); background-color: rgba(0, 0, 0, 0.4); } &::before { content: ''; width: 26px; height: 26px; line-height: 26px; background: url(~@/assets/portalClient/special/hg.png) no-repeat; background-size: contain; margin-left: -23px; margin-top: -20px; display: inline-block; position: absolute; top: 0; left: 50%; z-index: 10; transition: all 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s; opacity: 0; } &::after { content: ""; width: 100%; height: 0; background-color: rgba(10, 36, 86, 0.4); position: absolute; top: 0px; left: 0; opacity: 0; -webkit-transition: all 0.3s ease 0s; transition: all 0.3s ease 0s; } .card-img { width: 100%; transition: all 0.5s; } } .card-word { padding: 40px 20px 30px; font-family: Arial, "微软雅黑"; .card-title { font-family: Arial, "微软雅黑"; font-size: 16px; font-weight: normal; font-stretch: normal; line-height: 30px; letter-spacing: 1px; color: #333333; } .card-desc { font-family: Arial, "微软雅黑"; font-size: 12px; font-weight: normal; font-stretch: normal; width: 100%; height: 40px; letter-spacing: 1px; color: #a4aac7; display: -webkit-box; line-height: 22px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; margin-bottom: 0px; .indentation { padding-left: 2em; } } } .card-action { margin: 0 10px; button { margin: 0 auto; display: block; width: 82px; height: 32px; font-family: PingFangSC-Regular; font-size: 12px; font-weight: normal; font-stretch: normal; line-height: 22px; letter-spacing: 0px; border-radius: 2px; } } } } .footer-pagination { text-align: center; margin-top: 48px; } .more-btn { margin: 8px 4px; .ant-col { button { margin: 0 auto; display: block; margin: 0 8px; width: 72px; height: 32px; border-radius: 2px; } } }