gpt4 book ai didi

html - Jekyll 和 Liquid for 循环

转载 作者:行者123 更新时间:2023-12-04 12:07:27 24 4
gpt4 key购买 nike

我想为页面导航创建一个小的侧面导航。
该站点包含多个图像,一个在另一个之上,导航位于每一个图像内,并链接到个人 ID。

我正在将 jekyll 与液体模板引擎一起使用。为了不对每个元素进行硬编码,我创建了一个 for 循环,它获取单独的 .yml 文件的数据。

它应该是这样的:

Image

我的问题是它不适用于第一个元素。在第一个导航元素内,应该选择第一个圆圈。但它不是:

Image

这是代码:

{% for element in site.data.elements %}
{% capture number %}{{ forloop.length }}{% endcapture %}
<section id="spezial-{{forloop.index}}" {% assign imgIndex = {{forloop.index0}} %} class="spezial-img" style="background-image:url('{{ element.bild }}');">
<div class="container spezial-container">
<div class="sub-navi">
<ul>
{% for y in (1..number) %}
{% if imgIndex == naviIndex %}
<li><a href="#spezial-{{forloop.index}}" {% assign naviIndex = {{forloop.index}} %} {{ naviIndex }} class="active" ><i class="fa fa-dot-circle-o"></i></a></li>
{% else %}
<li><a href="#spezial-{{forloop.index}}" {% assign naviIndex = {{forloop.index}} %}><i class="fa fa-circle-o"></i></a></li>
{% endif %}
{% endfor %}
</ul>
</div>
</div>
</section>
{% endfor %}

最佳答案

您正在比较两个工作方式不同的计数器。

{% assign imgIndex = {{forloop.index0}}

这将从 0 计数到 array.size-1
{% assign naviIndex = {{forloop.index}}

这将从 1 计数到 array.size
由于您不在同一个“时区”中,因此对于您拥有的第一张图片
imgIndex == naviIndex
0 == 1 -> false

然后,从第二个循环开始,在每个循环中一次您将达到相等但不是在正确的元素上。

在第二 imgIndex元素,例如,事件类将设置在第一个 naviIndex元素,但这是错误的。所有以下元素都是一样的。

正确的代码可以是:
{% for element in site.data.elements %}
{% capture number %}{{ forloop.length }}{% endcapture %}
{% assign imgIndex = {{forloop.index}} %}
<section id="spezial-{{imgIndex}}" class="spezial-img" style="background-image:url('{{ element.bild }}');">
<div class="container spezial-container">
<div class="sub-navi">
<ul>
{% for naviIndex in (1..number) %}
{% if imgIndex == naviIndex %}
<li><a href="#spezial-{{forloop.index}}" %} {{ naviIndex }} class="active" ><i class="fa fa-dot-circle-o"></i></a></li>
{% else %}
<li><a href="#spezial-{{forloop.index}}" {% assign naviIndex = {{forloop.index}} %}><i class="fa fa-circle-o"></i></a></li>
{% endif %}
{% endfor %}
</ul>
</div>
</div>
</section>
{% endfor %}

关于html - Jekyll 和 Liquid for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30886691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com