2011-08-19 210 views
2

我有一个位于固定大小div内的选项卡窗格,每当该选项卡切换到大于外部div的页面时,整个页面都向下滚动,以至于我无法再看看我的标签,我在jsfiddle中嘲笑它以显示问题。显示隐藏的div时停止滚动页面

请注意,为了看到问题,页面必须小于包含div。

jsFiddle

任何人都知道我可以从向下滚动停止时,页面的选项卡切换,而无需使用JavaScript?

回答

0

没有使用JavaScript?无法完成。

使用JavaScript很容易:

evt.preventDefault(); 

http://jsfiddle.net/vVJY4/3/

+0

看到我的答案。我可以完成:P – Andrew

+0

他的意思是说他不想摆脱使用jQuery的舒适区域;) –

1

谢谢你向我展示evt.preventDefault()这让我在正确的位置看。点击链接指向我隐藏的div,然后页面向下滚动。

要停止滚动我也可以只从href属性别的东西删除ID,

jsFiddle

+0

对于“可访问性”和“优雅降级”的目的,我强烈建议您保留这些在那里命名锚。 –

+0

另外,要说这是一个不使用JavaScript的解决方案,就像是说将所有的锚一起移除是一个解决方案。事实上,甚至不写一个页面,这是一个解决方案! –

+0

@Adam我原本以为这是一个问题,我的一些css被拧得很紧,而不是href attr。成为原因。我不希望答案纠正了滚动,而是那些从未有过滚动的滚动,如果这是有道理的话。 – Andrew

0

如果你想用“纯”的JavaScript,使用:

function stopScroll() 
{ 
    document.getElementById("body_id").style.overflow = "hidden"; 
} 

function startScroll() 
{ 
    document.getElementById("body_id").style.overflow = "auto"; 
}