MooTools Fx.SmoothScroll() 仅在最小屏幕宽度
MooTools Fx.SmoothScroll() at min-screen width only
有没有一种简单的方法可以在最小屏幕宽度下初始化Fx.SmoothScroll,并在下面禁用它?
例如,我只希望平滑滚动发生在 400px 以上。
为什么,因为 show/hide 响应式菜单弄乱了滚动目标位置,所以 JS 滚动超过了目标。
更新:
我认为实际测量过渡元素的偏移量并将其设置为平滑滚动会更好。我试过了,但它不起作用。
$$('#nav ul li a.menu')[0].addEvent('click', function(){
window.offset = $('nav').getSize().y - 32;
console.log(window.offset)
});
new Fx.SmoothScroll({
offset: {
y: -window.offset
}
});
如何更新每次点击的偏移量?
走正确的 "responsive" 路线后,我想出了这段代码。
var theScroll = new Fx.Scroll(window);
$$('#nav ul li a.menu')[0].addEvent('click', function(e){
e.preventDefault();
offset = $('nav').getSize().y - 32;
theScroll.options.offset.y = -offset;
theScroll.toElement($('menu'),'y');
});
有没有一种简单的方法可以在最小屏幕宽度下初始化Fx.SmoothScroll,并在下面禁用它?
例如,我只希望平滑滚动发生在 400px 以上。
为什么,因为 show/hide 响应式菜单弄乱了滚动目标位置,所以 JS 滚动超过了目标。
更新: 我认为实际测量过渡元素的偏移量并将其设置为平滑滚动会更好。我试过了,但它不起作用。
$$('#nav ul li a.menu')[0].addEvent('click', function(){
window.offset = $('nav').getSize().y - 32;
console.log(window.offset)
});
new Fx.SmoothScroll({
offset: {
y: -window.offset
}
});
如何更新每次点击的偏移量?
走正确的 "responsive" 路线后,我想出了这段代码。
var theScroll = new Fx.Scroll(window);
$$('#nav ul li a.menu')[0].addEvent('click', function(e){
e.preventDefault();
offset = $('nav').getSize().y - 32;
theScroll.options.offset.y = -offset;
theScroll.toElement($('menu'),'y');
});