Delay Elements - Wistia & Vimeo
How to delay any element in Synamate page until the user reaches a certain point in the embedded video
For Wistia Hosted Videos:
Script:
<script src="https://fast.wistia.com/assets/external/E-v1.js" async></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            var button = document.getElementById('PASTE-ELEMENT-ID-HERE-REMOVE-#');
            button.style.display = 'none';
            window._wq = window._wq || [];
            _wq.push({ id: "PASTE-VIDEO-ID-HERE", onReady: function(video) {
                video.bind('timechange', function(time) {
                    if (time >= 600) {
                        button.style.display = 'block';
                    }
                });
            }});
        });
</script>Use Case:
VSL Pages - If you have a vsl page, you can delay a button to get qualified appointments/purchases. You would want your viewers/leads to see the video atleast to a point right?
For Vimeo Hosted Videos:
Copy paste this below script in Code Element in Synamate under the Wistia video.
This script only works for Vimeo Video.
<script> 
  document.addEventListener('DOMContentLoaded', function() {
  function getVimeoID(iframe) {
    var src = iframe.getAttribute('src');
    var match = src.match(/video\/(\d+)/);
    return match ? match[1] : null;
  }
  var iframes = document.querySelectorAll('iframe');
  var targetVideoID = 'PASTE-VIDEO-ID-HERE'; //Enter the video ID
  iframes.forEach(function(iframe) {
    var videoID = getVimeoID(iframe);
    if (videoID === targetVideoID) {
      var player = new Vimeo.Player(iframe);
      var button = document.getElementById('PASTE-BUTTON-ID-HERE-REMOVE-#');
      button.style.display = 'none';
      player.on('timeupdate', function(data) {
        if (data.seconds >= 600) { // Change time here
          button.style.display = 'block';
        }
      });
    }
  });
});
</script>Last updated
Was this helpful?