0

我正在生成一个 amp 模板,并且我有一个按钮可以切换amp-sidebar的可见性。代码如下:

<button class="button .closed icon" on='tap:sidebar1.toggle'></button>

侧边栏按预期切换。但是,我也希望根据状态(打开或关闭)更改显示的图标。

我有两个班级这样做:

  • button .close (汉堡菜单图标)

  • 按钮 .open(十字)

共享类“图标”应该在两者之间保持不变。我还想保留“tap:sidebar1.toggle”,这样菜单仍然会切换。

4

1 回答 1

1

实现此目的的一种方法是使用 amp-state 来跟踪侧边栏是打开还是关闭。然后,您可以使用此状态绑定按钮的类以相应地对其进行样式设置。

初始化一个放大器状态,如下所示:

<amp-state id = "sbOpen">
    <script type = "application/json">
        false
    </script>
</amp-state>

现在更改您的侧边栏代码如下:

<amp-sidebar

 on="sidebarOpen:AMP.setState({sbOpen});sidebarClose:AMP.setState({sbOpen})" 

最后你的按钮标签应该是这样的:

<button class="button closed icon" on='tap:sidebar1.toggle'
        [class]=" 'button icon ' + (sbOpen?'open':'closed) "></button>
于 2018-08-23T12:38:38.690 回答