UNPKG

swiper-vue

Version:

轮播 swiper slider component for Vue.js

140 lines 3.33 kB
.vue-swiper { position: relative; overflow: hidden; } .vue-swiper--container { height: 100%; width: 100%; display: flex; transition: all 1s ease-in-out; } .vue-swiper--item { flex-shrink: 0; height: 100%; width: 100%; } .vue-swiper--arrow-pre, .vue-swiper--arrow-next { cursor: pointer; position: absolute; top: 50%; transform: translateY(-50%); opacity: 0; z-index: -1; } .vue-swiper--arrow-pre .default-arrow, .vue-swiper--arrow-next .default-arrow { height: 32px; width: 32px; border-radius: 50%; background: #BFC9D4; line-height: 32px; text-align: center; font-size: 18px; color: #fff; } .vue-swiper--arrow-pre .default-arrow:hover, .vue-swiper--arrow-next .default-arrow:hover { background: #7D8CA1; } .vue-swiper--arrow-pre { left: 0; } .vue-swiper--arrow-next { right: 0; } .vue-swiper--indicator { display: flex; justify-content: center; gap: 6px; position: absolute; left: 50%; transform: translateX(-50%); bottom: 10px; } .vue-swiper--indicator-item { cursor: pointer; background: rgba(255, 255, 255, 0.6); height: 3px; width: 30px; } .vue-swiper--indicator-item:hover { background: #C5C9D0; } .vue-swiper--indicator-item.active { background: #fff; } .vue-swiper.vertical .vue-swiper--container { flex-direction: column; } .vue-swiper.vertical .vue-swiper--indicator { flex-direction: column; left: 12px; top: 50%; transform: translateY(-50%); } .vue-swiper.vertical .vue-swiper--indicator-item { width: 3px; } .vue-swiper.vertical .vue-swiper--arrow-pre, .vue-swiper.vertical .vue-swiper--arrow-next { top: auto; left: 50%; transform: translateX(-50%); } .vue-swiper.vertical .vue-swiper--arrow-pre .default-arrow, .vue-swiper.vertical .vue-swiper--arrow-next .default-arrow { transform-origin: 50% 50%; transform: rotate(90deg); } .vue-swiper.vertical .vue-swiper--arrow-pre { top: 12px; } .vue-swiper.vertical .vue-swiper--arrow-next { right: auto; bottom: 12px; } .vue-swiper.vertical.arrow-always .vue-swiper--arrow-pre, .vue-swiper.vertical.arrow-always .vue-swiper--arrow-next { left: 50%; transform: translateX(-50%); } .vue-swiper.vertical.arrow-always .vue-swiper--arrow-next { right: auto; } .vue-swiper.vertical.arrow-hover:hover .vue-swiper--arrow-pre, .vue-swiper.vertical.arrow-hover:hover .vue-swiper--arrow-next { left: 50%; transform: translateX(-50%); } .vue-swiper.vertical.arrow-hover:hover .vue-swiper--arrow-next { right: auto; } .vue-swiper.arrow-hover:hover .vue-swiper--arrow-pre, .vue-swiper.arrow-hover:hover .vue-swiper--arrow-next { opacity: 1; z-index: 2; transition: all 0.6s ease-in-out; } .vue-swiper.arrow-hover:hover .vue-swiper--arrow-pre { left: 12px; } .vue-swiper.arrow-hover:hover .vue-swiper--arrow-next { right: 12px; } .vue-swiper.arrow-always .vue-swiper--arrow-pre, .vue-swiper.arrow-always .vue-swiper--arrow-next { opacity: 1; z-index: 2; } .vue-swiper.arrow-always .vue-swiper--arrow-pre { left: 12px; } .vue-swiper.arrow-always .vue-swiper--arrow-next { right: 12px; } .vue-swiper--empty { -webkit-user-select: none; -moz-user-select: none; user-select: none; height: 100%; width: 100%; position: absolute; left: 0; top: 0; z-index: 3; display: flex; align-items: center; justify-content: center; }