• websites

Click-to-play overlay for amp-video


Click-to-play is a common UX feature for video players on the web.

Initially displayed on top of the video, the overlay contains details about the video such as title, duration, poster image, links and a play icon.

amp-video supports the standard play AMP action, allowing you to implement click-to-play easily.


Import the amp-video component.

<script async custom-element="amp-video" src=""></script>


Custom styles for click-to-play overlay

<style amp-custom>

  /* Wrapper that hosts the video and the overlay */
  .video-player {
    position: relative;
    overflow: hidden;

  /* Overlay fills the parent and sits on top of the video */
  .click-to-play-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;

  .poster-image {
    position: absolute;
    z-index: 1;

  .poster-image img {
    object-fit: cover;

  .video-title {
    position: absolute;
    z-index: 2;

    /* Align to the top left */
    top: 0;
    left: 0;

    font-size: 1.3em;
    background-color: rgba(0,0,0,0.8);
    color: #fafafa;
    padding: 0.5rem;
    margin: 0px;

  .play-icon {
    position: absolute;
    z-index: 2;

    width: 100px;
    height: 100px;

    background-image: url(;
    background-repeat: no-repeat;
    background-size: 100% 100%;

    /* Align to the middle */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    cursor: pointer;
    opacity: 0.9;

  .play-icon:hover, .play-icon:focus {
    opacity: 1;


The overlay is an absolutely positioned div that sits on top of the amp-video element and fills the parent player container. It hosts the poster image, video title and a play icon.

Play icon uses play and hide AMP actions to hide the overlay and play the video when it is tapped.

Title of the video

<div class="video-player">

  <amp-video id="myVideo" controls width="1280" height="720" layout="responsive" src="/static/samples/video/bullfinch.mp4">

  <div id="myOverlay" class="click-to-play-overlay">

    <h3 class="video-title">Title of the video</h3>

    <div class="play-icon" role="button" tabindex="0" on="tap:myOverlay.hide,"></div>

    <amp-img class="poster-image" layout="fill" src="/static/samples/img/bullfinch_poster.jpg"></amp-img>

如果此页面上的说明未能涵盖您的所有问题,欢迎与其他 AMP 用户取得联系,讨论您的具体用例。

前往 Stack Overflow

AMP 项目强烈鼓励您参与并做出贡献!我们希望您能成为我们开放源代码社区的持续参与者,但我们也欢迎您对所热衷问题做出一次性贡献。

编辑 GitHub 上的示例