You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

216 lines
4.8 KiB

@use '../helpers/baseMixin.scss';
.vxe-image-preview {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
&:not(.is--pct11) {
.vxe-image-preview--img-item {
max-width: 100%;
max-height: 100%;
}
}
&:not(.is--move) {
.vxe-image-preview--img-item {
@include baseMixin.createAnimationTransition(transform, 0.3s);
}
}
&:hover {
.vxe-image-preview--close-wrapper,
.vxe-image-preview--previous-btn,
.vxe-image-preview--next-btn,
.vxe-image-preview--operation-info,
.vxe-image-preview--operation-wrapper {
opacity: 1;
}
.vxe-image-preview--operation-info {
transform: translate(0, 0);
}
.vxe-image-preview--previous-btn,
.vxe-image-preview--next-btn {
transform: translate(0, -50%);
&:hover {
color: var(--vxe-ui-font-primary-color);
transform: translate(0, -50%) scale(1.2);
}
&:active {
transform: translate(0, -50%) scale(0.9);
}
}
.vxe-image-preview--operation-wrapper {
transform: translate(-50%, 0);
&:hover {
transform: translateX(-50%) scale(1.1);
}
}
}
}
.vxe-image-preview--img-list {
display: flex;
width: 100%;
height: 100%;
flex-direction: row;
align-items: center;
justify-content: center;
}
.vxe-image-preview--img-item {
display: none;
cursor: grab;
&:active {
cursor: grabbing;
}
&.is--active {
display: block;
}
}
.vxe-image-preview--close-btn {
top: 0;
right: 0;
z-index: 99;
padding: 1em;
font-size: 1.5em;
transform: scale(1);
border-radius: 50%;
cursor: pointer;
@include baseMixin.createAnimationTransition(all, 0.2s);
}
.vxe-image-preview--close-bg {
position: absolute;
top: -7em;
right: -12em;
z-index: 99;
width: 30em;
height: 10em;
background-color: rgba(0, 0, 0, 0.7);
color: var(--vxe-ui-status-error-color);
transform: rotate(45deg);
cursor: pointer;
z-index: 88;
@include baseMixin.createAnimationTransition(all, 0.2s);
}
.vxe-image-preview--close-wrapper {
opacity: 0;
@include baseMixin.createAnimationTransition(all, 0.2s);
&:hover {
.vxe-image-preview--close-btn {
top: 0.2em;
right: 0.2em;
transform: scale(1.2);
color: var(--vxe-ui-status-error-color);
}
.vxe-image-preview--close-bg {
top: -5em;
}
}
}
.vxe-image-preview--operation-info,
.vxe-image-preview--close-btn,
.vxe-image-preview--previous-btn,
.vxe-image-preview--next-btn,
.vxe-image-preview--operation-wrapper {
position: absolute;
z-index: 99;
}
.vxe-image-preview--previous-btn,
.vxe-image-preview--next-btn {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
opacity: 0;
top: 50%;
border-radius: 50%;
font-size: 1.6em;
width: 2.2em;
height: 2.2em;
line-height: 2.2em;
background-color: rgba(0, 0, 0, 0.7);
cursor: pointer;
@include baseMixin.createAnimationTransition(all, 0.1s);
}
.vxe-image-preview--previous-btn {
left: 1vw;
transform: translate(-2em, -50%);
}
.vxe-image-preview--next-btn {
right: 1vw;
transform: translate(2em, -50%);
}
.vxe-image-preview--operation-info {
right: 0.2em;
bottom: 0.2em;
font-size: 1em;
padding: 0.3em 0;
width: 4.6em;
opacity: 0;
border-radius: var(--vxe-ui-base-border-radius);
text-align: center;
transform: translate(2em, 2em);
background-color: rgba(0, 0, 0, 0.7);
@include baseMixin.createAnimationTransition(all, 0.2s);
}
.vxe-image-preview--operation-wrapper {
opacity: 0;
display: flex;
flex-direction: row;
bottom: 3vh;
left: 50%;
transform: translate(-50%, 3em);
padding: 0 1.5em;
border-radius: 3em;
background-color: rgba(0, 0, 0, 0.7);
@include baseMixin.createAnimationTransition(all, 0.2s);
}
.vxe-image-preview--operation-active-count {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
font-size: 1.2em;
min-width: 2.5em;
.vxe-image-preview--operation-active-current,
.vxe-image-preview--operation-active-total {
display: inline-block;
height: 1.4em;
}
.vxe-image-preview--operation-active-current {
font-size: 2em;
line-height: 1.2em;
font-weight: 700;
padding-right: 0.1em;
min-width: 1.4em;
text-align: right;
}
}
.vxe-image-preview--operation-btn {
font-size: 1.6em;
padding: 0.5em;
cursor: pointer;
@include baseMixin.createAnimationTransition(all, 0.1s);
&:hover {
color: var(--vxe-ui-font-primary-color);
transform: scale(1.2);
}
&:active {
transform: scale(0.9);
}
}
.vxe-image-preview-popup-wrapper {
user-select: none;
&.vxe-modal--wrapper {
&.type--modal {
.vxe-modal--box {
border: 0;
background-color: rgba(0, 0, 0, 0.1);
box-shadow: none;
}
.vxe-modal--content {
padding: 0;
}
}
}
}