UNPKG

shineout

Version:

Shein 前端组件库

338 lines (337 loc) 7.59 kB
.so-image { position: relative; display: inline-block; overflow: hidden; } .so-image > * { position: absolute; top: 0; left: 0; } .so-image-inner { right: 0; bottom: 0; } .so-image img { max-width: 100%; max-height: 100%; } .so-image-mask { display: -webkit-box; display: -ms-flexbox; display: flex; background: var(--gray-100, #f8f9fa); color: var(--gray-500, #adb5bd); } .so-image-mask div { margin: auto; } .so-image-rounded { border-radius: 4px; } .so-image-circle { border-radius: 50%; } .so-image-thumbnail { background-color: #fff; border-radius: 2px; -webkit-box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.075); box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.075); -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } .so-image-thumbnail .so-image-inner { top: 3px; right: 3px; bottom: 3px; left: 3px; } .so-image-fill .so-image-inner, .so-image-fit .so-image-inner { background-position: 50% 50%; background-repeat: no-repeat; } .so-image-fill .so-image-inner { background-size: cover; } .so-image-center .so-image-inner { display: -webkit-box; display: -ms-flexbox; display: flex; } .so-image-center .so-image-inner img { margin: auto; } .so-image-stretch .so-image-inner img { width: 100%; height: 100%; } .so-image-group .so-image { margin-right: 8px; } .so-image-pile.so-image-group { position: relative; } .so-image-pile.so-image-group .so-image { position: absolute; z-index: 0; top: 0; left: 0; display: none; } .so-image-pile.so-image-group .so-image:first-child { position: relative; z-index: 10; display: inline-block; } .so-image-pile.so-image-group .so-image:nth-child(2) { top: 8px; left: 8px; display: inline-block; } .so-image-gallery { position: fixed; z-index: 1100; top: 0; right: 0; bottom: 0; left: 0; } .so-image-gallery .so-image-center, .so-image-gallery .so-image-left, .so-image-gallery .so-image-right { display: -webkit-box; display: -ms-flexbox; display: flex; position: absolute; z-index: 10; top: 50%; background: #fff; } .so-image-gallery .so-image-center > div, .so-image-gallery .so-image-left > div, .so-image-gallery .so-image-right > div { -webkit-box-sizing: content-box; box-sizing: content-box; border: solid 10px #fff; } .so-image-gallery .so-image-center { z-index: 20; min-width: 100px; min-height: 100px; } .so-image-gallery .so-image-left:hover, .so-image-gallery .so-image-right:hover { cursor: pointer; opacity: 1; } @-webkit-keyframes so-image-kf-f2c { 0% { left: 100%; margin-left: -80px; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } 100% { left: 50%; margin-left: 0; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } } @keyframes so-image-kf-f2c { 0% { left: 100%; margin-left: -80px; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } 100% { left: 50%; margin-left: 0; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } } @-webkit-keyframes so-image-kf-c2b { 0% { right: 50%; margin-right: 0; -webkit-transform: translate(50%, -50%); transform: translate(50%, -50%); } 100% { right: 100%; margin-right: -80px; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } } @keyframes so-image-kf-c2b { 0% { right: 50%; margin-right: 0; -webkit-transform: translate(50%, -50%); transform: translate(50%, -50%); } 100% { right: 100%; margin-right: -80px; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } } @-webkit-keyframes so-image-kf-c2f { 0% { left: 50%; margin-left: 0; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } 100% { left: 100%; margin-left: -80px; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } } @keyframes so-image-kf-c2f { 0% { left: 50%; margin-left: 0; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } 100% { left: 100%; margin-left: -80px; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } } @-webkit-keyframes so-image-kf-b2c { 0% { right: 100%; margin-right: -80px; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } 100% { right: 50%; margin-right: 0; -webkit-transform: translate(50%, -50%); transform: translate(50%, -50%); } } @keyframes so-image-kf-b2c { 0% { right: 100%; margin-right: -80px; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } 100% { right: 50%; margin-right: 0; -webkit-transform: translate(50%, -50%); transform: translate(50%, -50%); } } .so-image-gallery .so-image-center.so-image-init { left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .so-image-gallery .so-image-left.so-image-init, .so-image-gallery .so-image-left.so-image-backward { right: 100%; margin-right: -80px; opacity: 0.4; -webkit-transform: translate(0, -50%); -ms-transform: translate(0, -50%); transform: translate(0, -50%); } .so-image-gallery .so-image-right.so-image-init, .so-image-gallery .so-image-right.so-image-forward { left: 100%; margin-left: -80px; opacity: 0.4; -webkit-transform: translate(0, -50%); -ms-transform: translate(0, -50%); transform: translate(0, -50%); } .so-image-gallery .so-image-center.so-image-forward { -webkit-animation: so-image-kf-f2c 0.42s linear; animation: so-image-kf-f2c 0.42s linear; } .so-image-gallery .so-image-left.so-image-forward { -webkit-animation: so-image-kf-c2b 0.42s linear; animation: so-image-kf-c2b 0.42s linear; } .so-image-gallery .so-image-center.so-image-backward { -webkit-animation: so-image-kf-b2c 0.42s linear; animation: so-image-kf-b2c 0.42s linear; } .so-image-gallery .so-image-right.so-image-backward { -webkit-animation: so-image-kf-c2f 0.42s linear; animation: so-image-kf-c2f 0.42s linear; } .so-image-gallery .so-image-overlay { position: absolute; z-index: 0; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0, 0, 0, 0.5); } .so-image-gallery .so-image-close { position: absolute; top: -14px; right: -10px; width: 24px; height: 24px; border: solid 1px #fff; background: #333; border-radius: 12px; -webkit-box-shadow: 0px 1px 2px 2px rgba(0, 0, 0, 0.3); box-shadow: 0px 1px 2px 2px rgba(0, 0, 0, 0.3); } .so-image-gallery .so-image-close svg { position: absolute; top: 5px; left: 5px; width: 12px; height: 12px; fill: #fff; } .so-image-gallery img { display: block; } .so-image-magnify { display: inline-block; margin: auto; } .so-image-magnify > img { background: #fff; position: relative; z-index: 2; } .so-image-magnify-loading { z-index: 1; display: inline-block; margin: auto; position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 30px; height: 30px; pointer-events: none; } .so-image-left .so-image-magnify-loading, .so-image-right .so-image-magnify-loading { display: none; }