重新定位窗口上的页面调整大小
Reposition page on window resize
我使用scrollTo()
进行页面滚动。我发现的一个问题是,当我调整浏览器大小时,页面不会再次滚动到我指定的元素,但它停留在中间的某个位置,所以我必须再次单击"滚动"按钮来对齐页面。当用户调整浏览器大小时,有什么方法可以对齐页面吗。
我试过使用这个:
window.onresize = function() {
scrollToPosition(section[position]);
}
// position is variable which I declared above this event
但这让滚动变得疯狂,页面开始向右/向左快速移动,这是不正常的。我相信每次调整浏览器大小时,它都会绑定onresize
事件。
我的问题有什么解决方案吗
编辑:
这是jsFiddle,但我似乎不知道如何使用jsFiddl,因为这里什么都不起作用:http://jsfiddle.net/52eRj/1/
通过编写以下代码,可以避免每次执行resize
事件时重新调整函数。滚动时每1秒执行一次scrollToPosition
功能。
var last = new Date().getTime();
var interval = 1000; // Set your own time.
window.addEventListener('resize', function() {
var curr = new Date().getTime();
if (curr - last > interval) {
last = curr;
scrollToPosition(section[position]);
}
});
问题可能是您在每次调整大小事件上都调用scrollToPosition
函数,在正常的手动调整大小中可以触发100次。
为了避免这种情况,你可以像这样使用clearTimeout
:
$(window).resize(function () {
clearTimeout(resizeId);
resizeId = setTimeout(doneResizing, 500);
});
function doneResizing() {
scrollToPosition(section[position]);
}
这样,doneResizing
函数只会在窗口停止调整大小500毫秒后调用,从而避免了数十或数百次不必要的调用。
相关文章:
- 调整窗口大小时,可拖动的对象会出现在容器外部
- Chrome应用程序调整窗口大小保持纵横比
- Adobe Air SDK在页面加载时调整窗口大小
- 可以在调整窗口大小时重新调整stellar.js的元素偏移量
- 在调整窗口大小时刷新浏览器(仅在展开或放大时)
- Javascript滚动并调整窗口大小
- ExtJS 4-在调整窗口大小时,溢出的工具栏会失去控制器
- 基于媒体查询的angular js动画无法调整窗口大小
- 调整窗口大小时更新数据属性
- Fittext只有在调整窗口大小时才起作用
- 调整窗口大小后仍然重定向Div
- 调整窗口大小时,页面上的四个图像将不会调整大小
- 无法在调整窗口大小时动态添加类
- 画布 - 在调整窗口大小时转换鼠标坐标
- Javascript 函数调整窗口高度和宽度
- 在调整窗口大小时停止/重新启动动画循环
- 在调整窗口大小时重新加载 jQuery 轮播以将方向从垂直更改为垂直
- 如果用户调整窗口大小/窗口未最大化,是否可以隐藏网页上的图像
- 仅在调整窗口宽度大小时调用 jquery 函数
- 如何在调整窗口大小时流畅图像