Files
layui/src/css/modules/carousel.css
2025-11-14 00:51:39 +08:00

256 lines
6.5 KiB
CSS

/* carousel 轮播 */
.layui-carousel {
position: relative;
left: 0;
top: 0;
background-color: #f8f8f8;
}
.layui-carousel > *[carousel-item] {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
}
.layui-carousel > *[carousel-item]:before {
position: absolute;
content: '\e63d';
left: 50%;
top: 50%;
width: 100px;
line-height: 20px;
margin: -10px 0 0 -50px;
text-align: center;
color: #c2c2c2;
font-family: 'layui-icon' !important;
font-size: 30px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.layui-carousel > *[carousel-item] > * {
display: none;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: #f8f8f8;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
}
.layui-carousel-updown > * {
-webkit-transition: 0.3s ease-in-out up;
transition: 0.3s ease-in-out up;
}
.layui-carousel-arrow {
display: none\0;
opacity: 0;
position: absolute;
left: 10px;
top: 50%;
margin-top: -18px;
width: 36px;
height: 36px;
line-height: 36px;
text-align: center;
font-size: 20px;
border: none 0;
border-radius: 50%;
background-color: rgba(0, 0, 0, 0.2);
color: #fff;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
cursor: pointer;
}
.layui-carousel-arrow[lay-type='add'] {
left: auto !important;
right: 10px;
}
.layui-carousel[lay-arrow='always'] .layui-carousel-arrow {
opacity: 1;
left: 20px;
}
.layui-carousel[lay-arrow='always'] .layui-carousel-arrow[lay-type='add'] {
right: 20px;
}
.layui-carousel[lay-arrow='none'] .layui-carousel-arrow {
display: none;
}
.layui-carousel-arrow:hover,
.layui-carousel-ind ul:hover {
background-color: rgba(0, 0, 0, 0.35);
}
.layui-carousel:hover .layui-carousel-arrow {
display: block\0;
opacity: 1;
left: 20px;
}
.layui-carousel:hover .layui-carousel-arrow[lay-type='add'] {
right: 20px;
}
.layui-carousel-ind {
position: relative;
top: -35px;
width: 100%;
line-height: 0 !important;
text-align: center;
font-size: 0;
}
.layui-carousel[lay-indicator='outside'] {
margin-bottom: 30px;
}
.layui-carousel[lay-indicator='outside'] .layui-carousel-ind {
top: 10px;
}
.layui-carousel[lay-indicator='outside'] .layui-carousel-ind ul {
background-color: rgba(0, 0, 0, 0.5);
}
.layui-carousel[lay-indicator='none'] .layui-carousel-ind {
display: none;
}
.layui-carousel-ind ul {
display: inline-block;
padding: 5px;
background-color: rgba(0, 0, 0, 0.2);
border-radius: 10px;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
}
.layui-carousel-ind ul li {
display: inline-block;
width: 10px;
height: 10px;
margin: 0 3px;
font-size: 14px;
background-color: var(--lay-gray-300);
background-color: rgba(255, 255, 255, 0.5);
border-radius: 50%;
cursor: pointer;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
}
.layui-carousel-ind ul li:hover {
background-color: rgba(255, 255, 255, 0.7);
}
.layui-carousel-ind ul li.layui-this {
background-color: #fff;
}
.layui-carousel > *[carousel-item] > .layui-this,
.layui-carousel > *[carousel-item] > .layui-carousel-prev,
.layui-carousel > *[carousel-item] > .layui-carousel-next {
display: block;
}
.layui-carousel > *[carousel-item] > .layui-this {
-webkit-transform: translateX(0);
transform: translateX(0);
}
.layui-carousel > *[carousel-item] > .layui-carousel-prev {
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
.layui-carousel > *[carousel-item] > .layui-carousel-next {
-webkit-transform: translateX(100%);
transform: translateX(100%);
}
.layui-carousel > *[carousel-item] > .layui-carousel-prev.layui-carousel-right,
.layui-carousel > *[carousel-item] > .layui-carousel-next.layui-carousel-left {
-webkit-transform: translateX(0);
transform: translateX(0);
}
.layui-carousel > *[carousel-item] > .layui-this.layui-carousel-left {
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
.layui-carousel > *[carousel-item] > .layui-this.layui-carousel-right {
-webkit-transform: translateX(100%);
transform: translateX(100%);
}
/* 上下切换 */
.layui-carousel[lay-anim='updown'] .layui-carousel-arrow {
left: 50% !important;
top: 20px;
margin: 0 0 0 -18px;
}
.layui-carousel[lay-anim='updown'] .layui-carousel-arrow[lay-type='add'] {
top: auto !important;
bottom: 20px;
}
.layui-carousel[lay-anim='updown'] .layui-carousel-ind {
position: absolute;
top: 50%;
right: 20px;
width: auto;
height: auto;
}
.layui-carousel[lay-anim='updown'] .layui-carousel-ind ul {
padding: 3px 5px;
}
.layui-carousel[lay-anim='updown'] .layui-carousel-ind li {
display: block;
margin: 6px 0;
}
.layui-carousel[lay-anim='updown'] > *[carousel-item] > * {
left: 0 !important;
}
.layui-carousel[lay-anim='updown'] > *[carousel-item] > .layui-this {
-webkit-transform: translateY(0);
transform: translateY(0);
}
.layui-carousel[lay-anim='updown'] > *[carousel-item] > .layui-carousel-prev {
-webkit-transform: translateY(-100%);
transform: translateY(-100%);
}
.layui-carousel[lay-anim='updown'] > *[carousel-item] > .layui-carousel-next {
-webkit-transform: translateY(100%);
transform: translateY(100%);
}
.layui-carousel[lay-anim='updown']
> *[carousel-item]
> .layui-carousel-prev.layui-carousel-right,
.layui-carousel[lay-anim='updown']
> *[carousel-item]
> .layui-carousel-next.layui-carousel-left {
-webkit-transform: translateY(0);
transform: translateY(0);
}
.layui-carousel[lay-anim='updown']
> *[carousel-item]
> .layui-this.layui-carousel-left {
-webkit-transform: translateY(-100%);
transform: translateY(-100%);
}
.layui-carousel[lay-anim='updown']
> *[carousel-item]
> .layui-this.layui-carousel-right {
-webkit-transform: translateY(100%);
transform: translateY(100%);
}
/* 渐显切换 */
.layui-carousel[lay-anim='fade'] > *[carousel-item] > * {
-webkit-transform: translateX(0) !important;
transform: translateX(0) !important;
}
.layui-carousel[lay-anim='fade'] > *[carousel-item] > .layui-carousel-prev,
.layui-carousel[lay-anim='fade'] > *[carousel-item] > .layui-carousel-next {
opacity: 0;
}
.layui-carousel[lay-anim='fade']
> *[carousel-item]
> .layui-carousel-prev.layui-carousel-right,
.layui-carousel[lay-anim='fade']
> *[carousel-item]
> .layui-carousel-next.layui-carousel-left {
opacity: 1;
}
.layui-carousel[lay-anim='fade']
> *[carousel-item]
> .layui-this.layui-carousel-left,
.layui-carousel[lay-anim='fade']
> *[carousel-item]
> .layui-this.layui-carousel-right {
opacity: 0;
}