处理多个滚动溢出:auto

时间:2014-08-22 12:16:28

标签: html css

页面上有许多弹出窗口,其中包含overflow:auto属性

结构是 -

<div id="popup1">
  <div>SomeHTMLSTRUC</div>
  <div>SomeHTMLSTRUC</div>
  <ul class="scroll"></ul>
</div>
<div id="popup2">
  <div>SomeHTMLSTRUC</div>
  <div>SomeHTMLSTRUC</div>
  <ul class="scroll"></ul>
</div>

这个ul有这类滚动属性。 现在,如果我在其中一个弹出框中滚动到底部。下次打开另一个弹出窗口弹出窗口时如何设置滚动到顶部?

2 个答案:

答案 0 :(得分:0)

添加

document.getElementById('popup1').children[0].scrollTop = 0;

在打开弹出窗口的代码之前。这假设<ul><div>中唯一的直接子项。

工作演示:http://jsfiddle.net/sdz8nc3j/

<小时/> 编辑:最近对<ul> 第三个​​孩子的问题进行了更新,您需要将[0]更改为[2] 。你也可以找到<ul>,而不是依赖于孩子的数量:

document.getElementById('popup1').getElementsByTagName('ul')[0].scrollTop = 0;

工作演示:http://jsfiddle.net/sdz8nc3j/3/

<小时/> <小时/> 我也制作了一个jQuery版本,虽然它并没有真正为你节省任何东西。它还会搜索<ul>

$popup1 = $("#popup1");
$popup1.click(function(){
    $popup1.children('ul').scrollTop(0);
});

工作演示:http://jsfiddle.net/sdz8nc3j/1/

答案 1 :(得分:0)

使用此:

document.getElementById("popup1").childNodes[2].scrollTo(0, 0);

如果UL是第三个孩子,这是有效的!

jQuery版本:

$("#popup1").find("ul").scrollTo(0, 0);