amp-selector
描述
表示一个控件,该控件呈现一个选项菜单,并允许用户从中选择。
必需的脚本
<script async custom-element="amp-selector" src="https://cdn.ampproject.org/v0/amp-selector-0.1.js"></script>
用法
AMP 选择器是一个控件,它显示一个选项列表,并允许用户选择一个或多个选项;选项的内容不仅限于文本。
amp-selector可以包含任何任意的 HTML 元素或 AMP 组件(例如,amp-carousel、amp-img等)。amp-selector不能包含任何嵌套的amp-selector控件。- 可以通过向元素添加
option属性并为该属性赋值来设置可选择的选项(例如,<li option='value'></li>)。 - 可以通过向元素添加
disabled属性来设置禁用的选项(例如,<li option='d' disabled></li>)。 - 可以通过向元素添加
selected属性来设置预选的选项(例如,<li option='b' selected></li>)。 - 要允许多项选择,请向
amp-selector元素添加multiple属性。默认情况下,amp-selector允许一次选择一个。 - 要禁用整个
amp-selector,请向amp-selector元素添加disabled属性。 - 当
amp-selector包含name属性且amp-selector位于form标签内时,如果表单上发生提交事件,则amp-selector的行为类似于单选按钮/复选框组,并根据amp-selector的名称提交选定的值(分配给选项的值)。
示例
<form action="/" method="get" target="_blank" id="form1"> <amp-selector layout="container" name="single_image_select"> <ul> <li> <amp-img src="/img1.png" width="50" height="50" option="1"></amp-img> </li> <li> <amp-img src="/img2.png" width="50" height="50" option="2"></amp-img> </li> <li option="na" selected>None of the Above</li> </ul> </amp-selector> <amp-selector layout="container" name="multi_image_select" multiple> <amp-img src="/img1.png" width="50" height="50" option="1"></amp-img> <amp-img src="/img2.png" width="50" height="50" option="2"></amp-img> <amp-img src="/img3.png" width="50" height="50" option="3"></amp-img> </amp-selector> <amp-selector layout="container" name="multi_image_select_1" multiple> <amp-carousel id="carousel-1" width="200" height="60" controls> <amp-img src="/img1.png" width="80" height="60" option="a"></amp-img> <amp-img src="/img2.png" width="80" height="60" option="b" selected ></amp-img> <amp-img src="/img3.png" width="80" height="60" option="c"></amp-img> <amp-img src="/img4.png" width="80" height="60" option="d" disabled ></amp-img> </amp-carousel> </amp-selector> </form> <amp-selector layout="container" name="multi_image_select_2" multiple form="form1" > <amp-carousel id="carousel-1" width="400" height="300" type="slides" controls> <amp-img src="/img1.png" width="80" height="60" option="a"></amp-img> <amp-img src="/img2.png" width="80" height="60" option="b" selected ></amp-img> <amp-img src="/img3.png" width="80" height="60" option="c"></amp-img> <amp-img src="/img4.png" width="80" height="60" option="d"></amp-img> </amp-carousel> </amp-selector>
清除选择
要在点击或单击元素时清除所有选择,请在元素上设置 on 操作属性,并使用 clear 操作方法指定 AMP 选择器 id。
示例
<button on="tap:mySelector.clear">Clear Selection</button> <amp-selector id="mySelector" layout="container" multiple> <div option>Option One</div> <div option>Option Two</div> <div option>Option Three</div> </amp-selector>
在 AMP 示例中查看实时演示。
属性
<amp-selector> 上的属性
disabled、form、multiple、name
以上属性的行为与标准 HTML <select> 元素上的行为相同。
keyboard-select-mode
keyboard-select-mode 属性决定 <amp-selector> 内选项的键盘导航行为。
none(默认):Tab 键在<amp-selector>中的各项之间更改焦点。用户必须按 Enter 或空格键才能更改选择。箭头键被禁用。 focus:Tab 键将焦点移到<amp-selector>。用户使用箭头键在各项之间导航。必须按空格键或 Enter 键才能更改选择。 select:Tab 键将焦点移到<amp-selector>。当用户使用箭头键导航选项时,选择会发生更改。
<amp-selector> 选项上的属性
option
指示该选项是可选的。如果指定了值,则该值的内容将随表单提交。
disabled、selected
以上属性的行为与标准 HTML <option> 元素上的行为相同。
活动
事件可以使用 on 属性触发其他 AMP 组件上的操作。例如 on="select: my-tab.show"
阅读有关 AMP 操作和事件的更多信息。
select
当用户选择选项时,amp-selector 会触发 select 事件。多选择器和单选择器会在选择或取消选择选项时触发此事件。点击禁用的选项不会触发 select 事件。
event.targetOption包含所选元素的option属性值。event.selectedOptions包含所有选定元素的option属性值的数组。
验证
请参阅 AMP 验证器规范中的 amp-selector 规则。
需要更多帮助?
你已经阅读了本文档十几次,但它并没有真正涵盖你所有的问题?也许其他人也有同感:在 Stack Overflow 上联系他们。
前往 Stack Overflow 发现错误或缺少功能?AMP 项目强烈鼓励你的参与和贡献!我们希望你成为我们开源社区的长期参与者,但我们也欢迎你对你特别感兴趣的问题进行一次性贡献。
前往 GitHub