구글 AMP – Story

Amp-story는 사용자가 스토리에 계속 참여할 수 있도록 콘텐츠를 표시하는 데 사용되는 amp 구성 요소입니다. 예를 들어 브랜드에 대해 소개하는 일련의 이미지를 사용할 수 있습니다.

amp-story로 작업하려면 아래와 같이 스크립트를 포함해야 합니다.

<script async custom-element="amp-story" 
src="https://cdn.ampproject.org/v0/amp-story-1.0.js"></script>

이 글에서는 amp-story가 무엇이며 어떻게 작동하는지 이해하겠습니다. 이미지 갤러리가 있고 페이지에 동일하게 표시하고 싶다고 가정합니다. amp 페이지에서 amp-story 구성 요소를 사용하여 사용자에게 멋지고 상호 작용하는 UI로 보이도록 만들 수 있습니다.

amp-story 태그의 형식은 다음과 같습니다.

<amp-story standalone> ---> 메인 스토리 태그
  <amp-story-page id="page-1"> ---> 스토리 내부 페이지 (예 : page1)
    <amp-story-grid-layer template="fill"> --> 페이지 레이어 1. 둘 이상의 레이어를 가질 수 있습니다.
      //여기에 html 요소 또는 amp 구성 요소 추가
    </amp-story-grid-layer>
    <amp-story-grid-layer template="fill"> --> 페이지 레이어 1. 둘 이상의 레이어를 가질 수 있습니다.
      //여기에 html 요소 또는 amp 구성 요소 추가
    </amp-story-grid-layer>
    ...
  </amp-story-page>
  <amp-story-page id="page-2"> ---> 스토리 내부 페이지 (예 : page2)
    <amp-story-grid-layer template="fill"> --> 페이지에 대한 레이어 2. 둘 이상의 레이어를 가질 수 있습니다.
      //여기에 html 요소 또는 amp 구성 요소 추가
    </amp-story-grid-layer>
    ...
  </amp-story-page>
  ...
</amp-story>

다음과 같이 amp-story에 추가된 몇 가지 추가 속성이 있습니다.

<amp-story standalone title="My Story"
           publisher="The AMP Team"
           publisher-logo-src="publisherlogo image here"
           poster-portrait-src="poster portrait here"
           poster-square-src="poster square image here"
           poster-landscape-src="poster landscape image here">

이 기능은 amp를 사용하여 스토리텔링을 매우 인터렉티브하게 만듭니다.

다음 코드는 amp-story의 작동 예를 보여줍니다. 동일한 출력은 데스크톱 및 모바일 모드에 대해 표시됩니다.

예제

<!doctype html>
<html ⚡ lang="ko">
<head>
  <meta charset="utf-8">
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <title>Google AMP - Story</title>
  <link rel="canonical" href="https://googleblogamp.blogspot.com/2021/01/google-amp-story.html">
  <meta name="viewport" content="width=device-width,minimum-scale=1">
  <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
  <style amp-custom>
    amp-story {
      font-family: Roboto, Helvetica, Arial, sans-serif;
    }
    amp-story-page * {
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <amp-story standalone
             title="Stories in AMP - Hello World"
             publisher="AMP Project">
    <amp-story-page id="page-1">
      <amp-story-grid-layer template="fill">
        <amp-img src="images/christmas1.jpg"
                 width="300" height="250" 
                 layout="responsive">
        </amp-img>
      </amp-story-grid-layer>
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is an AMP Story.</p>
      </amp-story-grid-layer>
    </amp-story-page>
    <amp-story-page id="page-2">
      <amp-story-grid-layer template="fill">
        <amp-img src="images/christmas5.jpg"
                 width="300" height="250" 
                 layout="responsive">
        </amp-img>
      </amp-story-grid-layer>
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is an AMP Story.</p>
      </amp-story-grid-layer>
    </amp-story-page>
    <amp-story-page id="page-3">
      <amp-story-grid-layer template="fill">
        <amp-img src="images/christmas3.jpg"
                 width="300" height="250" 
                 layout="responsive">
        </amp-img>
      </amp-story-grid-layer>
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is an AMP Story.</p>
      </amp-story-grid-layer>
    </amp-story-page>
    <amp-story-page id="page-4">
      <amp-story-grid-layer template="fill">
        <amp-img src="images/christmas4.jpg"
                 width="300" height="250" 
                 layout="responsive">
        </amp-img>
      </amp-story-grid-layer>
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is an AMP Story.</p>
      </amp-story-grid-layer>
    </amp-story-page> 
    <amp-story-bookend src="ampstory.json" layout="nodisplay">
    </amp-story-bookend> 
  </amp-story> 
</body>
</html>

ampstory.json

{
  "bookendVersion": "v1.0",
  "shareProviders": [
    "email",
    "twitter",
    "tumblr",
    {
      "provider": "facebook",
      "app_id": "254325784911610"
    }
  ],
  "components": [
    {
      "type": "heading",
      "text": "Introduction"
    },
    {
      "type": "small",
      "title": "Next Story is on Car Brands",
      "url": "ampcarbrand.html",
      "image": "images/audi.jpg"
    }
  ]
}

데스크탑

이것이 스토리 섹션이 표시되는 방식입니다. 동영상이나 기타 amp 구성 요소를 추가하여 스토리를보다 상호 작용할 수도 있습니다.

스토리의 끝에 도달하면 아래와 같이 amp-bookend에 주어진 내용이 표시됩니다.

<amp-story-bookend src="ampstory.json" layout="nodisplay">
</amp-story-bookend>

amp-bookend에 ampstory.json 파일을 제공했습니다. json 파일에는 아래와 같이 다음 스토리의 미리보기에 대한 세부 정보가 있습니다. 사용자가 오른쪽에 표시된 세 개의 점을 클릭하면 다음 화면이 표시됩니다.

스토리를 다시 로드하는 리플레이 버튼을 제공합니다. 자동차 브랜드의 스토리를 보여주는 자동차 이미지를 클릭하면 됩니다.

모바일 모드는 다음과 같습니다.

방문해주셔서 감사합니다. 즐거운 하루 되세요!

댓글 쓰기