当DOM被操纵时,滚动条会重置
scrollbar resets when DOM is manipulated
所以我有一个js函数,当从<select>
元素中选择一个选项时触发。这个函数触发一些DOM操作<不管出于什么原因,它每次都会让滚动条上升到顶部。这是令人沮丧的,因为我将旧的表单数据切换到ajax来避免这个问题。>
我研究了这个问题,发现了这个:
如何防止页面's滚动位置重置后DOM操作?
但是我不是从链接调用函数,而是在选择表单中的onchange事件,所以我不知道如何应用提供的解决方案。
下面是调用函数的form元素:<div id="imageTable">
<form action="">
<select onchange="getOption()" name="dir">
<option value="Anotherguyly">Anotherguyly</option>
<option value="Hello">Hello</option>
<option value="page1">page1</option>
<option value="pageish2">pageish2</option>
</select>
</form>
</div>
头文件中的js函数如下:
function getOption() {
var selectDOM = document.getElementById("imageTable").getElementsByTagName("select")[0];
var i = selectDOM.selectedIndex;
var selectedChoices = selectDOM.options;
var selectedText = selectedChoices[i].value
resetImageTable(selectedText);
}
function resetImageTable(option) {
// clears out previous DOM elements, inserts new chosen by the provided option
}
我怀疑答案在于执行的顺序。clears out previous DOM elements
非常可能影响有效滚动位置。
考虑将CSS visibility:hidden
应用于所有当前图像,然后将它们替换为新加载的图像,而不是删除然后添加节点。如果新函数少于旧函数,则在函数调用结束时删除掉队的函数;如果新的比旧的多,那么在替换之后继续添加它们。
这种方法将导致最小的滚动位置变化
相关文章:
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 禁用(而不是隐藏)浏览器滚动条
- 在firefox和chrome中的左侧显示iframe滚动条
- jquery:将动画绑定到滚动条位置的更好方法
- 在窗口中添加滚动条
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 使用没有插件的javascript自定义滚动条
- CodeMirror.禁用垂直滚动条
- 在滚动时,在隐藏滚动条和隐藏溢出的同时触发事件
- 可以'无法使滚动条正常工作
- 强制滚动条覆盖页面内容
- 如何隐藏滚动条,但希望它继续工作
- 滚动所有嵌套的滚动条,使HTML元素进入视图
- 使用浏览器滚动条而不是iframe滚动条
- 滚动条在关闭引导对话框后消失
- javascript/获取滚动条位置的回调
- 可调整滚动条大小
- 当DOM被操纵时,滚动条会重置
- 有可能在javascript中找到dom节点的自定义滚动条css属性吗?
- 如果在弹性滚动条弹跳时改变了DOM,则滚动条位置会跳转