uniapp自定义switch

1.用于自定义文字和按钮

<template>
    <view class="container">
        <label :class="isChecked ? 'switch-checked' : 'switch-nochecked'">
            <view class="open">开</view>
            <view class="close">关</view>
        </label>
    </view>
</template>

<script>
    export default {
        props: ['isChecked'],
    }
</script>

<style lang="scss" scoped>
    .container {
        width: 120rpx;

        label {
            position: relative;
            display: block;
            border-radius: 55rpx;
            height: 55rpx;
            width: 100%;

            &:before {
                content: " ";
                display: block;
                border-radius: 55rpx;
                height: 100%;
                background-color: #E7F8FF;
                transform: scale(1, 1);
                transition: all 0.3s ease;
            }

            &:after {
                content: " ";
                position: absolute;
                top: 9%;
                margin-left: 5%;
                width: 45rpx;
                height: 45rpx;
                border-radius: 45rpx;
                background-image: url('http://qiniu.shoulongdao.vip/1/material/6b7650fc-e045-4f3b-bc4f-0e2b4ca3c4d6.png');
                background-size: 100% 100%;
                box-shadow: 2rpx rgba(0, 0, 0, 0.08);
                transition: all 0.3s ease;
            }
        }

        %font-style {
            top: 0;
            color: #3FB3FF;
            font-size: 20rpx;
            height: 100%;
            line-height: 55rpx;
            position: absolute;
            transition: all 1s ease;
        }

        .switch-checked {
            &:after {
                margin-left: calc(94% - 45rpx);
                left: unset;
            }

            &:before {
                background-color: #E7F8FF;
            }

            .close {
                display: none;
            }
        }

        .switch-nochecked {
            .open {
                display: none;
            }
        }

        .open {
            left: 20rpx;
            @extend %font-style;
        }

        .close {
            right: 20rpx;
            @extend %font-style;
            color: #3FB3FF ;
        }
    }
</style>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值