magic-akari / seamless-scroll-polyfill

Scroll Behavior polyfill
https://www.npmjs.com/package/seamless-scroll-polyfill
MIT License
159 stars 12 forks source link

No longer works on iOS #125

Closed 9mm closed 2 years ago

9mm commented 3 years ago

Did something in the functionality change?

How I'm using it:

  import { windowScroll } from 'seamless-scroll-polyfill';

  windowScroll(window, {
    top,
    left: 0,
    behavior,
  });

Vue config:

  transpileDependencies: ['seamless-scroll-polyfill'],

When I don't transpile I get an error that the function doesn't exist, and then it works after I transpile, so I can only assume all configuration is correct and it is actually using the library (meaning the error isn't in my webpack setup or something).

I notice now that it breaks on iPhone, yet it works on desktop... I'm wondering what else might have changed?

magic-akari commented 3 years ago

Thanks for the feedback. There is a bug that was recently fixed in v2.1.2. Can you tell me which version you are using?

9mm commented 3 years ago

I was using 2.1.2

magic-akari commented 3 years ago

Can you give a sample code to help reproduce this issue? The iPhone version and the iOS version would also help.

9mm commented 3 years ago

I just updated iOS before I saw your comment about the version. It was the latest version before the version released tonight.

for my iPhone its an iPhone 11 Pro

As far as the code it was simply this:

 import { windowScroll } from 'seamless-scroll-polyfill';

  windowScroll(window, {
    top,
    left: 0,
    behavior: 'smooth',
  });
magic-akari commented 3 years ago

Hi, I created a minimal project with vue-cli. my-project.zip

I tested it on iPhone 11 iOS 14.7.1 and everything works fine. You can try it out and let me know if you have any questions.

9mm commented 3 years ago

This project seems to work, I will need to look again in detail to see what is happening. I only tested briefly with localtunnel where I couldn't see the actual error message in safari console (if there was an error. it worked on desktop so there may not be an error).

Do you off hand know how to load something in safari on my iphone but I can debug it on my mac? That would make it a lot easier to debug for sure

magic-akari commented 3 years ago

This project seems to work, I will need to look again in detail to see what is happening. I only tested briefly with localtunnel where I couldn't see the actual error message in safari console (if there was an error. it worked on desktop so there may not be an error).

Do you off hand know how to load something in safari on my iphone but I can debug it on my mac? That would make it a lot easier to debug for sure

Hi, is there any progress now?

To debug on mobile Safari, you can connect the iPhone to the Mac with a data cable. The inspector can be found in the Mac's Safari develop menu.

9mm commented 3 years ago

We just reverted production and it started working again, I'll have to dig in more sometime soon

bakura10 commented 2 years ago

Hi ! It seems the library indeed broke on iOS15. It used to work on iOS14 but stopped working (I am using the version 2.1.3).

EDIT: also broken on Mac Safari 15.

bakura10 commented 2 years ago

After further testing, I found the issue is due to scroll snap. Something has apparently changed in Safari, and when trying to smooth scroll for scroll snap elements, it fails for some reason.

magic-akari commented 2 years ago

After further testing, I found the issue is due to scroll snap. Something has apparently changed in Safari, and when trying to smooth scroll for scroll snap elements, it fails for some reason.

Scroll snap issue seems to be a known issue. see https://github.com/magic-akari/seamless-scroll-polyfill/pull/102#issuecomment-725971297

bakura10 commented 2 years ago

Strange, it worked perfectly on iOS14. It works well though on IOS15 if I enable the smooth scrolling flag. I really wonder when Apple will activate it…

magic-akari commented 2 years ago

Strange, it worked perfectly on iOS14. It works well though on IOS15 if I enable the smooth scrolling flag. I really wonder when Apple will activate it…

I have an iPhone 11 running iOS 15. Can you provide a web page or code sandbox to help reproduce it?

bakura10 commented 2 years ago

Yes :). You can try here: https://focal-theme-ivory.myshopify.com/

just before the footer there is a native carousel with scroll snap. You can click on the dots to trigger the smooth scroll

9mm commented 2 years ago

If it helps at all, I'm not using scroll snap and problem still occured. Mine is just a simple scroll to element (code above). I haven't been able to dig in more yet as after downgrading I've had a lot of other higher priority tasks

magic-akari commented 2 years ago

no changes in iOS 15.3 :(

9mm commented 2 years ago

when you say 'non fixable' can you explain what you mean? The old version works fine and the new one does not, so surely it is fixable? I am still on 1.2.4 as that works

magic-akari commented 2 years ago

when you say 'non fixable' can you explain what you mean? The old version works fine and the new one does not, so surely it is fixable? I am still on 1.2.4 as that works

Sorry for late response. It seems like there are two different issues here.

9mm commented 2 years ago

i’ve mentioned above i think that i’m not using scroll snap at all. the core functionality just stops working for me altogether

Sent from my iToaster

On Feb 16, 2022, at 8:51 PM, magic-akari @.***> wrote:

 when you say 'non fixable' can you explain what you mean? The old version works fine and the new one does not, so surely it is fixable? I am still on 1.2.4 as that works

Sorry for late response. It seems like there are two different issues here.

One is related to the package format. There are some breaking changes from 1.x to 2.x. Please check the Release Notes.

Another is related to iOS scroll snap. I think we can do nothing except wait for Apple native support.

— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you authored the thread.

9mm commented 2 years ago

i will check package format but i believe i already ruled that out as there were no errors

Sent from my iToaster

On Feb 16, 2022, at 9:40 PM, Travis Skindzier @.***> wrote:

i’ve mentioned above i think that i’m not using scroll snap at all. the core functionality just stops working for me altogether

Sent from my iToaster

On Feb 16, 2022, at 8:51 PM, magic-akari @.***> wrote:

 when you say 'non fixable' can you explain what you mean? The old version works fine and the new one does not, so surely it is fixable? I am still on 1.2.4 as that works

Sorry for late response. It seems like there are two different issues here.

One is related to the package format. There are some breaking changes from 1.x to 2.x. Please check the Release Notes.

Another is related to iOS scroll snap. I think we can do nothing except wait for Apple native support.

— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you authored the thread.

magic-akari commented 2 years ago

i will check package format but i believe i already ruled that out as there were no errors

Hi @9mm . Could you try version ~2.1.7~ 2.1.8 to see if the issue persists?

magic-akari commented 2 years ago

I think it was fixed in 2.1.8. Issues related to scroll nap should be discussed in a separate new issue.

9mm commented 1 year ago

@magic-akari I just tried 2.2.0 (latest) and its still broken. This has nothing to do with scroll snap... that was brought up by some other person that's not me. My example is extremely simple, quite literally the simplest example, and it just doesnt scroll on iOS. If i revert back to 1.2.4 it scrolls fine:

I'm using iOS latest, mobile safari, latest scroll-polyfill

  import { windowScroll } from 'seamless-scroll-polyfill';

  windowScroll(window, {
    top,
    left: 0,
    behavior,
  });
9mm commented 1 year ago

I do get this error now though when i use mobile dev tools inspector on my desktop:

TypeError: Can only call Element.scroll on instances of Element

9mm commented 1 year ago

Weird......... I put window as the first argument (you can see it in my original post from months ago) but i actually think it was fixed in the version you said.

So we are good now, thanks!