似乎它与 PIE.htc 和重绘有更多关系,所以不让浏览器重绘怎么样 - 只需将 div 移开然后再回来..
<script type="text/javascript">
$(document).ready (function () {
$('#show_div').bind ('click', function () {
// show it by returning it to it's default position
$('#tab_container_3').css ( {position : 'static'} );
});
$('#hide_div').bind ('click', function () {
// hide it again by making it read the z-index
$('#tab_container_3').css ( {position: 'relative'} );
});
});
</script>
并将此 CSS 更改为:
#tab_container_3{
position: relative;
top: -9999px;
}
这只是将其移开,通过使用 jQuery更改position
to你切换回它的默认值,并且任何带有 a的元素都不接受 a ,所以你不需要改变它static
a
position
static
z-index
更新
根据可访问性(或不可访问性)信息
可以避免内容被访问,防弹的方法是一起使用display: block
和visibility: hidden
,但是根据上面已经提到的问题,我认为隐藏父级<li>
本身而不是<a>
行为是一个好主意,这次我通过添加和删除一个类来做到这一点
这似乎有效:
$(document).ready (function () {
// to make tab hidden and inaccessible onload
$('#tab_container_3').parent().addClass("element-invisible");
$('#show_div').bind ('click', function () {
$('#tab_container_3').parent().removeClass ("element-invisible");
});
$('#hide_div').bind ('click', function () {
$('#tab_container_3').parent().addClass ("element-invisible");
});
});
在 CSS 中添加了这个类(#tab_container_3
不再需要任何额外的 CSS)
.element-invisible {
position: absolute !important;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
visibility: hidden;
display: none;
}
现在对你有用吗,我在 FF 中测试了 CTRL+F 并没有找到隐藏的选项卡
注意我不认为前 3 个定位和剪辑规则对于这种方法是必要的,我在第一个上尝试了它们a
并且没有完全裁剪 IE 中的效果 - 所以我将类移到父 li.. 但我'将保留规则以显示我尝试过的内容-以防万一您想知道它们是什么;)
第三次幸运
这次我尝试了一个组合,首先li
使用负 z-index 将父级加载到页面之外,设置延迟以便 0.5 秒后隐藏并更正 z-index,这里的理论是试图让 PIE.htc 绘制在隐藏它们之前的角落,我认为没有人会在 0.5 秒内搜索内容;) - 它在 IE 中并不完全平滑,但我认为这是因为 PIE.htc 用来绘制角落和阴影的效果的定位,但是效果现在确实绘制了,我尝试向下滑动以显示 div,因为这似乎“隐藏”了 IE 锯齿状显示中最糟糕的部分
$(document).ready (function () {
// to make tab hidden but accessible onload, accessible at first to allow link to draw, then hide it after 0.5 seconds
$('#tab_container_3').parent().css('top','-9999px').delay(500).hide('fast', function() {$(this).css({'top' : '0px'});});
$('#show_div').bind ('click', function () {
$('#tab_container_3').parent().slideDown(200);
});
$('#hide_div').bind ('click', function () {
$('#tab_container_3').parent().hide(100);
});
});