Yvonne_2001 2023-12-09 12:26 采纳率: 16.7%
浏览 5

实现两个选中的日期之间的背景颜色问题

怎么实现这种我选择了两个年份,然后选中年份之间的那些年份有个透明一点的背景颜色。年份之间有间距所以没办法给单独每一个设置,不然中间会有间断的白色,请问有什么好的办法吗😩

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-09 14:21
    关注

    【以下回答由 GPT 生成】

    我可以为您提供一个解决方案。您可以通过使用Vue框架中的计算属性来为选中的年份之间的年份动态地添加一个略带透明的背景颜色。

    首先,您需要在Vue组件中定义一个data属性,用于存储选中的年份。您可以使用一个数组来存储选中的年份,例如selectedYears。

    data() {
      return {
        selectedYears: []
      }
    },
    

    接下来,您可以为年份列表的每个年份创建一个带有透明背景颜色的样式类。您可以通过计算属性来动态生成这些样式类。

    computed: {
      yearClasses() {
        return this.years.map(year => {
          if (this.isSelected(year)) {
            return 'selected-year';
          } else {
            return '';
          }
        });
      }
    },
    methods: {
      isSelected(year) {
        return this.selectedYears.includes(year);
      }
    }
    

    在上面的代码中,yearClasses计算属性会遍历年份列表并检查每个年份是否被选中。如果年份被选中,则返回'selected-year'样式类,否则返回空字符串。

    然后,您需要在样式表中定义'selected-year'样式类并设置透明背景颜色。

    .selected-year {
      background-color: rgba(0, 0, 0, 0.3);
    }
    

    最后,您可以在模板中使用v-for指令来渲染年份列表,并根据计算属性中的样式类来为每个年份设置样式。

    <div>
      <p>怎么实现这种我选择了两个年份,然后选中年份之间的那些年份有个透明一点的背景颜色。年份之间有间距所以没办法给单独每一个设置,不然中间会有间断的白色,请问有什么好的办法吗😩</p>
      <div>
        <p v-for="(year, index) in years" :key="index" :class="yearClasses[index]">{{ year }}</p>
      </div>
    </div>
    

    在上面的代码中,v-for指令会遍历years数组(包含所有年份),并为每个年份创建一个p标签。根据计算属性中的样式类,使用:class绑定来为该年份设置样式类。

    这样,选中的年份之间的年份将带有透明背景颜色,而其他年份将保持默认样式。

    请注意,上述代码只是一个示例代码,您可能需要根据您的实际需求进行相应的调整。

    希望这个解决方案能对您有所帮助!如果您有任何问题,请随时询问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月9日