Comments (3)
Hi @jbarkun, I haven't tested this but you may just need to update ASScroll's internal scroll positions as the GSAP tween progresses like:
gsap.to(window, {
duration: 0.6,
scrollTo: {y: $(hash_target), offsetY: scrollOffset},
onUpdate: () => {
ASScroll.Scroll.scrollPos = y
ASScroll.Scroll.smoothScrollPos = y
}
});
But it's likely that animating the native window position like that will conflict with ASScroll. If you want to animate the scroll position you are better off doing something like this:
const scroll = { value: 0 }
function scrollToSection() {
scroll.value = -ASScroll.smoothScrollPos
gsap.to(scroll, {
value: targetPosition, // targetPosition being the pixel position of where to scroll to
duration: 1,
ease: 'expo.out',
onUpdate: () => {
ASScroll.scrollTo(scroll.value)
}
})
}
If you want to snap to the scroll position like the native browser behaviour for anchor links you can just set the internal scroll positions like so:
ASScroll.Scroll.scrollPos = y
ASScroll.Scroll.smoothScrollPos = y
Let me know how you get on.
from asscroll.
Thanks for your help! I ended up taking your final suggestion, since animating the scroll seemed to be a little wonky on some page loads.
Here's the final code for anyone who has the same issue:
var hash = window.location.hash.substr(1);
if ( hash.length ) {
var hash_target = $('#' + hash);
if (hash_target.length) {
var init_scroll_pos = $(hash_target).offset().top;
asscroll.Scroll.scrollPos = -init_scroll_pos;
asscroll.Scroll.smoothScrollPos = -init_scroll_pos;
}
}
from asscroll.
No worries @jbarkun! You're the second person that has needed this so I think I'll add a method to snap to a scroll position rather than lerp to it like what .scrollTo()
does.
from asscroll.
Related Issues (20)
- Fix auto-inversion of target position when using .scrollTo on touch devices
- Add a jumpTo type method HOT 1
- Scroll jumps up when enabling
- Scroll jumps back to initial start position on Nuxt? HOT 1
- Works in Codepen only HOT 1
- Jumps farther than expected in firefox HOT 2
- Is it possible to have tabindex inputs and buttons work with AsScroll? HOT 2
- Is it possible to disable AsScroll? HOT 1
- How to know when an element scrolls into view? HOT 2
- Window jumps to top when using a form in Safari v15.4 HOT 2
- Does not scroll while mouse is over iframe. HOT 4
- How to properly remove event listener on window.object? HOT 3
- Asscroll not working with scrolltrigger which consist horizontal scroll HOT 1
- Position fixed seems to kill performances on safari HOT 1
- Position Fixed Problems HOT 1
- Tab focus not working for horizontal scroll
- Not working with Next.js HOT 1
- After a few seconds, couldn't scrolling with nextjs HOT 5
- Unable to scroll on div with absolute
- ASScroll is not working correctly on Mobile
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asscroll.