如何在打开网页时确保视图中的元素?

时间:2010-12-02 20:38:23

标签: javascript html asp.net-mvc

在打开页面时,有哪些有效的策略可以确保特定控件的存在?

更具体地说,我有一个验证信息显示在首屏下方,我想确保在必要时看到它。

我考虑使用书签(名为锚),但没有干净的方式来使用它,因为我只是意识到在处理完页面后出现了错误。

这与大多数预期的解决方案无关,但我正在添加asp.net-mvc标签,以防框架中有任何可能对我有帮助的时髦。

是的,jQuery解决方案还可以。

6 个答案:

答案 0 :(得分:1)

Answered on Twitter

David Wolever

document.onload = function() { location.href = "#foo" }

答案 1 :(得分:1)

您可以在Javascript中使用scrollIntoView调用来执行此操作 - 它将为您提供与锚点大致相同的结果,但您可以在需要将错误滚动到视图中时专门执行调用。

答案 2 :(得分:1)

您也可以使用jquery来执行此操作,如下所示:

 window.scrollTo(
     $("#wannaBeVisible").position().left, 
     $("#wannaBeVisible").position().top);

答案 3 :(得分:1)

这听起来像是您尝试使用代码解决的可用性问题。验证消息应该更接近有问题的控件,否则它们似乎不相关。

答案 4 :(得分:1)

最简单的方法:在控件旁边创建一个锚标记,为其命名并加载file.html#anchorname。

如果无法更改网址,则可以将焦点调用到锚元素上并将其滚动到视图中

答案 5 :(得分:0)

将您的验证消息标记为这样;

<p class="validation">Validation message here!</p>

然后用CSS这样定位它;

.validation {
display: block;
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 1.5em;
}

你可能不得不尝试一些变化,但它应该是一个好的起点。这将执行与Stack Overflow顶部弹出的通知类似的操作,除非它们位于窗口的底部。

不需要JS!

More information on CSS Fixed Positioning