• 动手吧,vue单独使用的复选框


    单独使用的复选框可以用在两个状态之间的切换,如是否阅读协议、记住账号等场景。

    效果:

    1、template部分

    1. <template>
    2. <label class="v-checkbox-single">
    3. <span class="v-checkbox_input" :class="{ disabled }">
    4. <span class="v-checkbox_inner" :class="{ checked, disabled }">span>
    5. <input
    6. v-model="checked"
    7. class="v-checkbox_origin"
    8. :disabled="disabled"
    9. @change="change"
    10. type="checkbox"
    11. name="checkbox"
    12. />
    13. span>
    14. <span class="v-checkbox_label" :class="{ disabled }">
    15. <slot>slot>
    16. span>
    17. label>
    18. template>

    2、js部分

    1. export default {
    2. data() {
    3. return {};
    4. },
    5. props: {
    6. value: Boolean,
    7. disabled: Boolean,
    8. },
    9. computed: {
    10. checked: {
    11. get() {
    12. return this.value;
    13. },
    14. set(val) {
    15. this.$emit("input", val);
    16. },
    17. },
    18. },
    19. created() {},
    20. methods: {
    21. change() {
    22. this.$emit("change", this.checked);
    23. },
    24. },
    25. };

    可以的话,点个赞嘛,

    不赞的话,打你哦!

    3、css部分

    1. .v-checkbox-single {
    2. cursor: pointer;
    3. .v-checkbox_input {
    4. .v-checkbox_inner {
    5. position: relative;
    6. display: inline-block;
    7. vertical-align: middle;
    8. width: 16px;
    9. height: 16px;
    10. border: 1px solid rgb(250, 162, 29);
    11. border-radius: 2px;
    12. background-color: #fff;
    13. transition: all 0.1s;
    14. &.disabled {
    15. border-color: #ccc;
    16. background-color: #ccc !important;
    17. cursor: not-allowed;
    18. }
    19. &.checked {
    20. background-color: rgb(250, 162, 29);
    21. &::before {
    22. position: absolute;
    23. top: 3px;
    24. left: 1px;
    25. content: "";
    26. width: 10px;
    27. height: 4px;
    28. border: 2px solid #fff;
    29. border-top: 0;
    30. border-right: 0;
    31. transform: rotate(-45deg);
    32. }
    33. }
    34. }
    35. .v-checkbox_origin {
    36. position: absolute;
    37. margin: 0;
    38. width: 0;
    39. height: 0;
    40. opacity: 0;
    41. outline: none;
    42. z-index: -1;
    43. }
    44. }
    45. .v-checkbox_label {
    46. font-size: 14px;
    47. vertical-align: middle;
    48. user-select: none;
    49. &.disabled {
    50. cursor: not-allowed;
    51. }
    52. }
    53. }

  • 相关阅读:
    每日最新新闻接口,免费好用
    国庆中秋特辑(四)MySQL如何性能调优?上篇
    [免费专栏] Android安全之Android的so文件分析
    力扣(LeetCode)301. 删除无效的括号(2022.10.29)
    一文读懂Llama 2(从原理到实战)
    [HUBUCTF 2022 新生赛]
    吃鸡专家教你战无不胜,分享顶级干货!
    vs code
    SpringBoot的使用
    Vitalik:不同类型的 ZK-EVM
  • 原文地址:https://blog.csdn.net/weixin_44708870/article/details/133136035