123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- @import './var.less';
- :root {
- --van-slider-active-background-color: @slider-active-background-color;
- --van-slider-inactive-background-color: @slider-inactive-background-color;
- --van-slider-disabled-opacity: @slider-disabled-opacity;
- --van-slider-bar-height: @slider-bar-height;
- --van-slider-button-width: @slider-button-width;
- --van-slider-button-height: @slider-button-height;
- --van-slider-button-border-radius: @slider-button-border-radius;
- --van-slider-button-background-color: @slider-button-background-color;
- --van-slider-button-box-shadow: @slider-button-box-shadow;
- }
- .van-slider {
- position: relative;
- width: 100%;
- height: var(--van-slider-bar-height);
- background: var(--van-slider-inactive-background-color);
- border-radius: var(--van-border-radius-max);
- cursor: pointer;
- // use pseudo element to expand click area
- &::before {
- position: absolute;
- top: calc(var(--van-padding-xs) * -1);
- right: 0;
- bottom: calc(var(--van-padding-xs) * -1);
- left: 0;
- content: '';
- }
- &__bar {
- position: absolute;
- width: 100%;
- height: 100%;
- background: var(--van-slider-active-background-color);
- border-radius: inherit;
- transition: all var(--van-animation-duration-fast);
- }
- &__button {
- width: var(--van-slider-button-width);
- height: var(--van-slider-button-height);
- background: var(--van-slider-button-background-color);
- border-radius: var(--van-slider-button-border-radius);
- box-shadow: var(--van-slider-button-box-shadow);
- &-wrapper {
- position: absolute;
- cursor: grab;
- top: 50%;
- &--right {
- right: 0;
- transform: translate3d(50%, -50%, 0);
- }
- &--left {
- left: 0;
- transform: translate3d(-50%, -50%, 0);
- }
- }
- }
- &--disabled {
- cursor: not-allowed;
- opacity: var(--van-slider-disabled-opacity);
- .van-slider__button-wrapper {
- cursor: not-allowed;
- }
- }
- &--vertical {
- display: inline-block;
- width: var(--van-slider-bar-height);
- height: 100%;
- .van-slider__button-wrapper--right {
- top: auto;
- right: 50%;
- bottom: 0;
- transform: translate3d(50%, 50%, 0);
- }
- .van-slider__button-wrapper--left {
- top: 0;
- right: 50%;
- left: auto;
- transform: translate3d(50%, -50%, 0);
- }
- // use pseudo element to expand click area
- &::before {
- top: 0;
- right: calc(var(--van-padding-xs) * -1);
- bottom: 0;
- left: calc(var(--van-padding-xs) * -1);
- }
- }
- }
|