vuejs:根据每个循环的 vuejs 中数组中的 2 个变量更改 <div> 的宽度

Posted

技术标签:

【中文标题】vuejs:根据每个循环的 vuejs 中数组中的 2 个变量更改 <div> 的宽度【英文标题】:vuejs: changing width of <div> based on 2 variables from array in a vuejs for each loop 【发布时间】:2021-06-05 06:38:28 【问题描述】:

我刚开始使用 vuejs,并坚持它是如何工作的。

目前,我在 div 上有一个小的“vuejs for each-loop”,它从 json 对象中获取信息。 我正在尝试计算最大距离上的当前距离,并让它影响一个 div。

当前的html

<div id="visuals" class="col-lg-9 col-sm-12 wow fadeInUp pt-5 pt-lg-0">
    <div v-for="element in sortedClubs">
        <div class="progessbar-title"> element.Name </div>
        <div class="progress progressvisual">
            <div class="progress-bar progress-bar-striped progress-bar-animated bg-warning" role="progressbar" style="width: 50%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
                 element.km  km
            </div>
        </div>
    </div>
</div>

当前的 vuejs:

var app = new Vue(
        el: '#visuals',
        data: elements: [
            "Name":"a","km":"1361",
            "Name":"b","km":"6409",
            "Name":"c","km":"1067"],
        computed: 
            sortedClubs: function() 
                function compare(a, b) 
                    if (a.km_lopen > b.km_lopen)
                        return -1;
                    if (a.km_lopen < b.km_lopen)
                        return 1;
                    return 0;
                

                return this.elements.sort(compare);
            
        
    );

由于列表是从高到低排序的,我可以用 sortedClubs[0].km 取最大值

但是如何根据 element.km/sortedClubs[0].km*100 作为百分比更改进度条 div 的 with,以便每个 div 都有它的百分比?

【问题讨论】:

【参考方案1】:

您可以使样式动态添加:在它之前。 然后使用 :style 你可以传递百分比而不是硬编码的 50%。

类似

:style="`width: $element.km/sortedClubs[0].km * 100%;`"

【讨论】:

这确实是解决方案,为什么需要2种引号?为什么要指定`类型? 您也可以使用 :style=" width: element.km/sortedClubs[0].km * 100 + '%' " 为动态样式添加更多字段。从 :style="width: $element.km/sortedClubs[0].km * 100%;" 第一个引号是 vue 的默认值。在反应中你用 包装值在你用 "" 包装的 vue 中第二个`是用于制作一个实际的字符串并允许在其中使用 $

以上是关于vuejs:根据每个循环的 vuejs 中数组中的 2 个变量更改 <div> 的宽度的主要内容,如果未能解决你的问题,请参考以下文章

Vuejs - 如何使用 v-for 获取数组中的所有唯一值(删除重复项)

VueJS:如何返回 3 个新数组,每个数组中的项目数量相等,除了最后一个数组?

VueJS根据for循环中的变量加载SVG文件,使用v-html给出[object Module]

vuejs 引导卡片组件动画

VueJS 和 Vuetify - 用于 v-select 的数组项在数据更新后不刷新

如何添加数组VueJS?