Plug and play components
Plug and play components:即插即用组件
AMP提供了一个巨大的组件库,可以创建常见的小部件和独特的web元素。比如折叠和展开内容部分的手风琴,或者收集和存储用户cookie同意的UI控件。对于我们的第一页,我们将使用amp-base-carousel将我们的单一图像转换为图像carousel。
Import the script
Import the script: 导入脚本
与amp-img不同,amp-base-carousel组件是一个扩展组件。前面讨论的样板代码提供的基本AMP JS中不包括扩展组件逻辑。通过显式地只加载页面使用的组件的JavaScript,这有助于保持AMP页面的简洁和精简。
要使用amp-base-carousel组件,我们必须导入它的脚本标记。复制下面的标签并将其放入文档的头部。您可以在每个组件的参考文档的顶部找到导入脚本。
<script async custom-element="amp-base-carousel" src="https://cdn.ampproject.org/v0/amp-base-carousel-0.1.js"></script>
接下来,在第一个元素下面包含另一个元素,然后将它们都包装在<amp-base-carousel>标签中,如下所示:
<amp-base-carousel width="600" height="400" layout="responsive">
<amp-img src="https://source.unsplash.com/Ji_G7Bu1MoM/600x400" width="600" height="400" layout="responsive"></amp-img>
<amp-img src="https://source.unsplash.com/4yCXNMLP9g8/600x400" width="600" height="400" layout="responsive"></amp-img>
</amp-base-carousel>
Component attributes
Component attributes:组件属性
您可能注意到,我们定义了熟悉的属性、宽度、高度和布局。像HTML一样,属性在AMP中无处不在。但是,AMP使用额外的属性来定制组件的行为。有些是常见的元素属性,有些是特定组件的特殊属性。让我们添加loop属性,并将其设置为true,并包含更多图片:
<amp-base-carousel loop="true" width="600" height="400" layout="responsive">
<amp-img src="https://source.unsplash.com/Ji_G7Bu1MoM/600x400" width="600" height="400" layout="responsive"></amp-img>
<amp-img src="https://source.unsplash.com/4yCXNMLP9g8/600x400" width="600" height="400" layout="responsive"></amp-img>
<amp-img src="https://source.unsplash.com/QrgRXH81DXk/600x400" width="600" height="400" layout="responsive"></amp-img>
<amp-img src="https://source.unsplash.com/8QJSi37vhms/600x400" width="600" height="400" layout="responsive"></amp-img>
</amp-base-carousel>
loop属性是特定于amp-base-carousel的,有助于定义其行为。我们可以进一步定制我们的旋转木马与其他属性,如自动前进!您可以在其参考页上查看可用于amp-base-carousel的属性列表。所有组件引用文档列出了可用的属性和它们配置的行为,请参阅AMP组件库。
最后代码如下:
<!doctype html>
<html amp lang="en">
<head>
<meta charset="utf-8">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<script async custom-element="amp-base-carousel" src="https://cdn.ampproject.org/v0/amp-base-carousel-0.1.js"></script>
<title>Hello, AMPs</title>
<link rel="canonical" href="https://amp.yingyanxt.com/">
<meta name="viewport" content="width=device-width">
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "NewsArticle",
"headline": "Open-source framework for publishing content",
"datePublished": "2015-10-07T12:02:41Z",
"image": [
"logo.jpg"
]
}
</script>
<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>
/* any custom style goes here */
body {
background-color: white;
}
amp-img {
background-color: gray;
border: 1px solid black;
}
</style>
</head>
<body>
<h1>Welcome to the mobile web</h1>
<amp-img src="./welcome.jpeg" alt="Welcome" height="400" width="800"></amp-img>
<amp-base-carousel width="600" height="400" layout="responsive">
<amp-img src="https://source.unsplash.com/Ji_G7Bu1MoM/600x400" width="600" height="400" layout="responsive"></amp-img>
<amp-img src="https://source.unsplash.com/4yCXNMLP9g8/600x400" width="600" height="400" layout="responsive"></amp-img>
</amp-base-carousel>
</body>
</html>