按ID滚动div

时间:2011-07-07 23:16:57

标签: getelementbyid scrolltop window.parent

我有一个具有此结构的HTML页面。

<div class="scrollBoxYe">
<table class="grid">
<tr><td class="wd0"><div id="20110701" class="lcday"><div class="lcleft">Fri 01</div><div class="lcmid">The Sacred Heart of Jesus, solemnity&nbsp;-&nbsp;<a href="#" onclick="window.open('http://evangelizo.org/www/popup-saints.php?language=AM&id=10309&fd=0', '', 'width=500,height=450,top=120,left=120,scrollbars=yes')">St. Gal, Bishop (c. 489-553)</a>,&nbsp;&nbsp;<a href="#" onclick="window.open('http://evangelizo.org/www/popup-saints.php?language=AM&id=10480&fd=0', '', 'width=500,height=450,top=120,left=120,scrollbars=yes')">Bl. Antonio Rosmini, Priest, Founder of the Institute of Charity (1797-1855)</a></div><div class="lcright">Jul</div></div></td>
</tr>
<tr><td class="we0"><div id="20110702" class="lcday"><div class="lcleft">Sat 02</div><div class="lcmid">Immaculate Heart of Mary - Memorial&nbsp;-&nbsp;<a href="#" onclick="window.open('http://evangelizo.org/www/popup-saints.php?language=AM&id=9906&fd=0', '', 'width=500,height=450,top=120,left=120,scrollbars=yes')">St. Bernardino Realino, Priest (1530-1616)</a></div><div class="lcright">Jul</div></div></td>
</tr>
<tr><td class="we0"><div id="20110703" class="lcday"><div class="lcleft">Sun 03</div><div class="lcmid"><a href="#" onclick="window.open('http://evangelizo.org/www/popup-saints.php?language=AM&id=9907&fd=0', '', 'width=500,height=450,top=120,left=120,scrollbars=yes')">St. Thomas, Apostle -Feast</a></div><div class="lcright">Jul</div></div></td>
</tr>
</table>
</div>
<script type="text/javascript">
    ScrollCalendar();
</script>

ScrollCalendar函数应滚动到div ID,如20110701,20110702,20110703。

function ScrollCalendar() {
    var d = new Date();
    calrow = d.formatDate("Ymd");
    document.write (calrow);
    var offscroll = window.parent.document.getElementById(calrow).offsetTop;
    document.write (offscroll);
    window.parent.document.getElementById("scrollBoxYe").scrollTop = offscroll;
}

在上面的函数中,正确确定了使用变量calrow检索的div ID。但是,代码没有提供正确的偏移量(offscroll)来滚动div(scrollBoxYe)。这些是我的问题:

  1. 如果calrow是正确的(显示20110701)。 getelementby ID会将calrow解释为字符串ID来检索元素吗?我应该先把绳子变成绳子吗?这样做的正确功能是什么?
  2. 如果所有页面信息都在一个文档中,那么使用window.parent.document搜索元素是错误的吗?该代码应该代替document.getElementbyID(“scrollBoxYe”)。scrollTop?
  3. 是否有更好的方法可以使用变量calrow滚动scrollBoxYe?
  4. 感谢。

1 个答案:

答案 0 :(得分:1)

有一种更好的滚动方式:element.scrollIntoView()

http://msdn.microsoft.com/en-us/library/ms536730(v=vs.85).aspx

这不是标准的一部分,但根据this,所有浏览器都支持它。