← back to Dw Theme Boost Fix
snippets/mega-nav.liquid
137 lines
<ul class="mobile-mega-nav navigation-submenu">
{% for link in link.links %}
<li class="has-dropdown">
<a
id="mobile-mega-navigation-{{ link.handle }}"
class="navigation-menu-link mega-nav-list-title"
href="{{ link.url }}"
>
{{ link.title }}
{% if link.links.size > 0 %}
<span
class="navigation-submenu-toggle"
tabIndex="0"
role="button"
aria-controls="navigation-{{ link.handle }}"
aria-expanded="false"
aria-label="{{ 'general.accessibility.toggle' | t }}"
data-subnav-toggle
>
{%
render 'icons',
id: 'chevron-right',
%}
</span>
{% endif %}
</a>
{% if link.links.size > 0 %}
<ul class="navigation-submenu">
{% for link in link.links %}
<li>
<a
class="navigation-menu-link"
href="{{ link.url }}"
>
{{ link.title }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
<div class="mega-nav">
{% assign mega_nav_image = '' %}
{% for block in section.blocks %}
{% assign mega_nav_handle = block.settings.menu_item | handle %}
{% if mega_nav_handle == link.handle %}
{% assign mega_nav_image = block.settings.menu_image %}
{% endif %}
{% endfor %}
{% if mega_nav_image != blank %}
<figure class="mega-nav-image">
{% capture mega_nav_image_attr %}
data-image="{{ mega_nav_image | img_url: '300x300' }}"
data-image-alt="{{ mega_nav_image.alt }}"
style="object-fit: cover; object-position: {{ mega_nav_image.presentation.focal_point }};"
{% endcapture %}
<img {{ mega_nav_image_attr }}>
<noscript>
<img
src="{{ mega_nav_image | img_url: '300x300' }}"
alt="{{ mega_nav_image.alt }}"
style="object-fit: cover; object-position: {{ mega_nav_image.presentation.focal_point }};"
>
</noscript>
</figure>
{% endif %}
<div class="mega-nav-list-wrapper">
{% for link in link.links %}
{%- if link.type == 'collection_link' -%}
{%- assign collection = link.object -%}
{%- if collection.image -%}
{%- assign image = collection.image | img_url: '300x300' -%}
{%- elsif collection.products.first.featured_media.preview_image -%}
{%- assign image = collection.products.first.featured_media.preview_image | img_url: '300x300' -%}
{%- endif -%}
{%- elsif link.type == 'product_link' -%}
{%- assign product = link.object -%}
{%- if product.featured_media.preview_image -%}
{%- assign image = product.featured_media.preview_image | img_url: '300x300' -%}
{%- endif -%}
{%- endif -%}
<ul class="mega-nav-list">
<li
class="mega-nav-list-title"
data-image="{{ image }}"
data-image-alt="{{ image.alt }}"
>
<a class="mega-nav-list-title-link" href="{{ link.url }}">{{ link.title }}</a>
</li>
{% for link in link.links %}
{%- capture image -%}
{%- if mega_nav_image != blank -%}
{{ mega_nav_image | img_url: '300x300' }}
{%- else -%}
{%- render 'svg-placeholder-uri' placeholder: 'image' -%}
{%- endif -%}
{%- endcapture -%}
{%- if link.type == 'collection_link' -%}
{%- assign collection = link.object -%}
{%- if collection.image -%}
{%- assign image = collection.image | img_url: '300x300' -%}
{%- elsif collection.products.first.featured_media.preview_image -%}
{%- assign image = collection.products.first.featured_media.preview_image | img_url: '300x300' -%}
{%- endif -%}
{%- elsif link.type == 'product_link' -%}
{%- assign product = link.object -%}
{%- if product.featured_media.preview_image -%}
{%- assign image = product.featured_media.preview_image | img_url: '300x300' -%}
{%- endif -%}
{%- endif -%}
<li
data-image="{{ image }}"
data-image-alt="{{ image.alt }}"
>
<a href="{{ link.url }}">{{ link.title }}</a>
</li>
{% endfor %}
</ul>
{% endfor %}
</div>
</div>