How can I make video banner clickable

Topic summary

A Shopify store owner wants to make a video banner clickable so it directs customers to a product page. They provided their website URL and the existing code for the video banner.

Solutions offered:

  • BSSCommerce-HDL suggested inserting JavaScript code above the </body> tag in the theme.liquid file (though the code snippet appears corrupted/unreadable in the thread)

  • vm-web provided a more detailed solution involving:

    • Adding wrapper markup around the video element
    • Including a schema configuration to allow selecting/adding a video banner link through the Shopify admin

Outcome:

The original poster confirmed one solution worked successfully.

Follow-up issue:

They then asked about improving website load speed to eliminate a loading message that appears, with a screenshot attached showing the issue. This secondary question remains unanswered.

Summarized with AI on November 8. AI used: claude-sonnet-4-5-20250929.

Hello,

I have a video banner on my website (as you can see in the image) that I would like to be clickable, so customers can click on the video and get directed to the product page. Is there someone who can help me out with that?

the link to my website is: https://muselabel.nl/

the code that I used to get the video banner is:

{%- if section.blocks.size > 0 -%}

{%- for block in section.blocks -%}

{%- assign img_url = block.settings.image | img_url: ‘1x1’ | replace: ‘1x1.', '{width}x.’ -%}

{% if block.type == ‘video’ %}

{%- if block.settings.video_link != blank -%}

<video class=“video-js” loop autoplay preload=“none” muted playsinline

poster=“https:{{ block.settings.video_image | img_url: ‘master’ }}”>

{% endif %}

{% if block.settings.title != blank %}

{{ block.settings.title | escape }}

{% endif %}

{%- style -%}

.videoBackground .imageBoxInfoDescription p {

color: {{ block.settings.color_text }}!important;

}

{%- endstyle -%}

{% if block.settings.text != blank %}

{{ block.settings.text }}

{% endif %}

{% if block.settings.button_link != blank and block.settings.button_label != blank %}

{{ block.settings.button_label | escape }}

{% endif %}

{% else %}

{% if block.settings.title != blank %}

{{ block.settings.title | escape }}

{% endif %}

{%- style -%}

.videoBackground .imageBoxInfoDescription p {

color: {{ block.settings.color_text }}!important;

}

{%- endstyle -%}

{% if block.settings.text != blank %}

{{ block.settings.text }}

{% endif %}

{% if block.settings.button_link != blank and block.settings.button_label != blank %}

{{ block.settings.button_label | escape }}

{% endif %}

{% endif %}

{%- endfor -%}

{% else %}

This section doesn’t currently include any content. Add content to this section using the sidebar.

{%- endif -%}

.main-content .videoBackground { margin-top: -55px; } .videoBackground { position: relative; } .videoBackground .fullscreen-video-wrap { position: absolute; top: 0; left: 0; min-width: 100%; width: 100%; height: 100%; overflow: hidden; } .videoBackground .fullscreen-video-wrap .video-js { position: absolute; top: 0; left: 0; min-height: 100%; min-width: 100%; width: 100%; height: 100%; object-fit: cover; } .videoBackground .fullscreen-video-wrap video { min-height: 100%; min-width: 100%; object-fit: cover; } .videoBackground .videoBox { display: flex; align-items: center; justify-content: flex-end; flex-direction: column; padding: 100px 20px 80px; background-size: cover; background-position: center; background-repeat: no-repeat; min-height: 500px; max-height: 800px; height: calc(100vh - 165px); position: relative; } .videoBackground .imageBox { display: flex; align-items: center; justify-content: flex-end; flex-direction: column; padding: 100px 20px 80px; background-size: cover; background-position: center; background-repeat: no-repeat; position: relative; min-height: calc(100vh - 165px); height: auto; } .videoBackground .videoBoxInfo, .videoBackground .imageBoxInfo { z-index: 2; margin: auto; text-align: center; } .videoBackground .overlay { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: #000; z-index: 1; } .videoBackground .videoBoxInfoBtn, .videoBackground .imageBoxInfoBtn { -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; user-select: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; display: inline-block; width: auto; text-decoration: none; text-align: center; vertical-align: middle; cursor: pointer; border: 1px solid transparent; border-radius: 2px; padding: 10px 30px; font-style: normal; font-weight: normal; letter-spacing: 0.06em; white-space: normal; font-size: 16px; margin-top: 20px; } .videoBackground .videoBoxInfoTitle, .videoBackground .imageBoxInfoTitle { color: #FFF; font-size: 65px; line-height: 40px; } .videoBackground .videoBoxInfoDescription, .videoBackground .imageBoxInfoDescription { max-width: 500px; margin: 0 auto; } .videoBackground .videoBoxInfoDescription p, .videoBackground .imageBoxInfoDescription p { font-size: 17px; line-height: 28px; } .videoBackground .placeholderNoblocks { text-align: center; max-width: 500px; margin: 0 auto; } @media screen and (max-width: 767px) { .main-content .videoBackground { margin-top: -35px; } .videoBackground .fullscreen-video-wrap { z-index: 3; } .videoBackground .videoBox { min-height: 300px; height: 100%; position: relative; padding: 0; } .videoBackground .fullscreen-video-wrap { position: relative; min-height: 300px; z-index: -2; } .videoBackground .videoBoxInfo { padding: 2px 20px; width: 100%; } .videoBoxInfoTitle, .videoBackground .videoBoxInfoBtn { display: none; } }

{% schema %}

{

“name”: {

“en”: “Video Background”

},

“class”: “videoBackground”,

“max_blocks”: 1,

“blocks”: [

{

“type”: “video”,

“name”: “Video”,

“settings”: [

{

“type”: “url”,

“id”: “video_link”,

“label”: {

“en”: “Video link”

}

},

{

“type”: “image_picker”,

“id”: “video_image”,

“label”: {

“en”: “Cover image”

}

},

{

“type”: “header”,

“content”: {

“en”: “Text”

}

},

{

“type”: “text”,

“id”: “title”,

“label”: {

“en”: “Heading”

},

“default”: “Video slide”

},

{

“type”: “richtext”,

“id”: “text”,

“label”: {

“en”: “Description”

},

“default”: {

“en”: “

Use this text to share information about your brand with your customers. Describe a product, share announcements, or welcome customers to your store.

}

},

{

“type”: “color”,

“id”: “color_text”,

“label”: {

“en”: “Text color”

},

“default”: “#ffffff

},

{

“type”: “text”,

“id”: “button_label”,

“label”: {

“en”: “Button label”

}

},

{

“type”: “url”,

“id”: “button_link”,

“label”: {

“en”: “Button link”

}

},

{

“type”: “color”,

“id”: “color_btn_bg”,

“label”: {

“en”: “Background button color”

},

“default”: “#ffffff

},

{

“type”: “color”,

“id”: “color_btn_text”,

“label”: {

“en”: “Button text color”

},

“default”: “#ffffff

}

]

},

{

“type”: “image”,

“name”: “Image”,

“settings”: [

{

“type”: “color”,

“id”: “color_bg”,

“label”: {

“en”: “Background color (optional)”

},

“default”: “#16165b

},

{

“type”: “image_picker”,

“id”: “image_bg”,

“label”: {

“en”: “or use an image (required)”

}

},

{

“type”: “range”,

“id”: “overlay_opacity”,

“label”: {

“en”: “Overlay opacity”

},

“min”: 0,

“max”: 99,

“step”: 1,

“unit”: {

“en”: “%”

},

“default”: 0

},

{

“type”: “header”,

“content”: {

“en”: “Text”

}

},

{

“type”: “text”,

“id”: “title”,

“default”: “Image slide”,

“label”: {

“en”: “Heading”

}

},

{

“type”: “richtext”,

“id”: “text”,

“label”: {

“en”: “Description”

},

“default”: {

“en”: “

Use this text to share information about your brand with your customers. Describe a product, share announcements, or welcome customers to your store.

}

},

{

“type”: “color”,

“id”: “color_text”,

“label”: {

“en”: “Text color”

},

“default”: “#ffffff

},

{

“type”: “text”,

“id”: “button_label”,

“label”: {

“en”: “Button label”

}

},

{

“type”: “url”,

“id”: “button_link”,

“label”: {

“en”: “Button link”

}

},

{

“type”: “color”,

“id”: “color_btn_bg”,

“label”: {

“en”: “Background button color”

},

“default”: “#ffffff

},

{

“type”: “color”,

“id”: “color_btn_text”,

“label”: {

“en”: “Button text color”

},

“default”: “#ffffff

}

]

}

],

“presets”: [

{

“name”: {

“en”: “Video Background”

},

“category”: {

“en”: “Main”

},

“blocks”: [

{

“type”: “video”

}

]

}

]

}
{% endschema %}

Hi @Muselabel ,

Step 1: Go to Shopify Admin → Online Store ->Theme → Edit code

Step 2: Search file theme.liquid

Step 3: Insert this code above tag:


Hope this can help you,

If our suggestions are useful, please let us know by giving it a like or marking it as a solution. Thank you :heart_eyes:

1 Like

@Muselabel

Please find this code


add this code


add schema

{

"type": "url",

"id": "vedio_banner_link",

"label":  "Select or add vedio banner link"
}

how do you add a schema?

it worked thank you! Do you know how I can make my website load faster so that this message no longer appears?