Splidejs / splide

Splide is a lightweight, flexible and accessible slider/carousel written in TypeScript. No dependencies, no Lighthouse errors.
https://splidejs.com
MIT License
4.89k stars 424 forks source link

Bug that autoplay stops when a click or drag event occurs while autoplay is enabled. ( #117 ) #1151

Open takky94 opened 1 year ago

takky94 commented 1 year ago

Related Issues

117

Description

日本のかたのようなのでせっかくなので日本語でPR出させていただきます。

素敵なライブラリありがとうございます :) 重宝させていただいております。 関連Issueの通りですが、自分の環境でも上記Issueの問題が依然としてdocでも確認できました。(下記動画) なお、こちらの症状ですがカルーセル範囲外をクリックすることでautoplayが再開することも確認済みです。

https://user-images.githubusercontent.com/82146166/231458603-4cb184cd-fbfa-467b-a359-425d5b9b6e0c.mov

コード読む感じ、play関数の責務がPause状態からの復帰のようにも思えたので、別途関数を分けるような下記の修正のほうが好ましいのかもと思いつつ、これのためだけに関数1つ増やすのもどうなのかとも思ったので一旦この状態で出しておきます。

+ on( EVENT_MOVED, keepPlaying );
// ...
+ function keepPlaying(): void {
+ if (!sttoped) play()
+ }
English Since you seem to be from Japan, I'll put up a PR in Japanese. Thank you very much for your wonderful library :) It is very useful. I have been using it for a while now, but I still have the same problem as the above issue in my environment (see video below). I have also confirmed that autoplay resumes by clicking outside the carousel area. I read the code, and it seems that the responsibility of the play function is to recover from the pause state, so I thought it might be preferable to modify the code below to separate a separate function, but I also wondered if it would be a good idea to add a function just for this purpose, so I'll leave it as it is for now.

test suites

# npm run jest

Test Suites: 102 passed, 102 total
Tests:       403 passed, 403 total
Snapshots:   0 total
Time:        32.782 s
Ran all test suites.
# lint

(base) % npm run eslint      

> @splidejs/splide@4.1.4 eslint
> eslint src

(base) %

余談ですが npm install時に forceオプション付けてしまいました .node-versionファイルかpackage.jsonにengine指定があると嬉しいです(node version起因でなければすみません🙇‍♂️)