ampproject / ampproject/amphtml

amp-carousel 0.2 with `loop` and `type=carousel` has buggy looping behavior

Open
#37,020 3 comments 0 reactions 1 assignee Claimed by @alanorozco View on GitHub
Stale Type: Bug WG: components
Dominant language
JavaScript
Stars
14.9k
Forks
4.1k
PR merge metrics
No merged PRs in 30d

Description

### Description

When amp-carousel 0.2 is used with the `loop` and `type=carousel` attributes, the left arrow is always displayed on the first slide and the right arrow is always displayed on the last slide. However, clicking on these buttons don't result in expected behaviors.

## Expected

- When it's on the first slide
- After clicking on the left arrow button, the carousel jumps back to display the last slide, since it's a "loop". There should be no "blank slides".
- When it's on the last slide
- After clicking on the right arrow button, the carousel jumps back to display the first slide.

## Actual

- When it's on the first slide
- clicking on the left arrow button doesn't do anything
- It will actually scroll the first slide slightly to the right and display a blank region on the left
- When it's on the last slide
- clicking on the right arrow button doesn't do anything

See video:

https://user-images.githubusercontent.com/743034/142740556-e81f3063-a952-4e4b-870d-a3ed32bcd1c9.mp4

/CC @caroqliu

### Reproduction Steps

This can be reproduced with the following AMP HTML:
```

amp-carousel






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}}body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}





```

[Playground link](https://playground.amp.dev/?format=websites&_gl=1*glz6dj*_ga*YW1wLVd5NUFON2hWN2tJZW8xam5zUzEtTUE.&mode=Responsive#share=PCFkb2N0eXBlIGh0bWw+CjxodG1sIOKaoSBsYW5nPSJlbiI+CjxoZWFkPgo8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgPHRpdGxlPmFtcC1jYXJvdXNlbDwvdGl0bGU+CiAgPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vY2RuLmFtcHByb2plY3Qub3JnL3YwLmpzIj48L3NjcmlwdD4KICA8IS0tICMjIFNldHVwIC0tPgogIDwhLS0gSW1wb3J0IHRoZSBjYXJvdXNlbCBjb21wb25lbnQgaW4gdGhlIGhlYWRlci4gLS0+CiAgPHNjcmlwdCBhc3luYyBjdXN0b20tZWxlbWVudD0iYW1wLWNhcm91c2VsIiBzcmM9Imh0dHBzOi8vY2RuLmFtcHByb2plY3Qub3JnL3YwL2FtcC1jYXJvdXNlbC0wLjIuanMiPjwvc2NyaXB0PgogIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL2FtcC5kZXYvZG9jdW1lbnRhdGlvbi9leGFtcGxlcy9jb21wb25lbnRzL2FtcC1jYXJvdXNlbC9pbmRleC5odG1sIj4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIj4KICA8c3R5bGUgYW1wLWJvaWxlcnBsYXRlPmJvZHl7LXdlYmtpdC1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDstbW96LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tcy1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDthbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aH1ALXdlYmtpdC1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tb3ota2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtbXMta2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtby1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QGtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX08L3N0eWxlPjxub3NjcmlwdD48c3R5bGUgYW1wLWJvaWxlcnBsYXRlPmJvZHl7LXdlYmtpdC1hbmltYXRpb246bm9uZTstbW96LWFuaW1hdGlvbjpub25lOy1tcy1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZX08L3N0eWxlPjwvbm9zY3JpcHQ+CjwvaGVhZD4gCjxib2R5PgogIDxhbXAtY2Fyb3VzZWwgbG9vcCBoZWlnaHQ9IjMwMCIgbGF5b3V0PSJmaXhlZC1oZWlnaHQiIHR5cGU9ImNhcm91c2VsIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9IkJhc2ljIHVzYWdlIGNhcm91c2VsIj4KICAgIDxhbXAtaW1nIHNyYz0iL3N0YXRpYy9zYW1wbGVzL2ltZy9pbWFnZTEuanBnIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjMwMCIgYWx0PSJhIHNhbXBsZSBpbWFnZSI+PC9hbXAtaW1nPgogICAgPGFtcC1pbWcgc3JjPSIvc3RhdGljL3NhbXBsZXMvaW1nL2ltYWdlMi5qcGciIHdpZHRoPSI0MDAiIGhlaWdodD0iMzAwIiBhbHQ9ImFub3RoZXIgc2FtcGxlIGltYWdlIj48L2FtcC1pbWc+CiAgICA8YW1wLWltZyBzcmM9Ii9zdGF0aWMvc2FtcGxlcy9pbWcvaW1hZ2UzLmpwZyIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzMDAiIGFsdD0iYW5kIGFub3RoZXIgc2FtcGxlIGltYWdlIj48L2FtcC1pbWc+CiAgPC9hbXAtY2Fyb3VzZWw+IAo8L2JvZHk+PC9odG1sPg==)

### Relevant Logs

_No response_

### Browser(s) Affected

_No response_

### OS(s) Affected

_No response_

### Device(s) Affected

_No response_

### AMP Version Affected

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.