我有一个函数 shoh() 可以切换 div 的状态 - 显示或隐藏它。加载页面时,通过将样式更改为 display:none 来重复调用 shoh($id) 以使每个 div 隐藏在页面上。如果用户想要查看隐藏的 div 中的数据,他们可以单击带有 onClick="show($id)" 的链接以将 div 样式更改为 display:block。这一切都很好。
即使禁用了 javascript,我也希望页面能够正常工作,因此我必须将 div 默认设置为可见,否则没有 javascript 的用户将永远无法看到数据。问题是当页面加载时,所有 div 都显示为可见,并且页面需要在 div 隐藏之前完全加载。这在美学上很差,并且会造成视觉混乱,因为页面可能需要几秒钟才能加载。
有没有办法阻止屏幕显示 div 直到 javascript 有机会运行?我不介意显示“正在加载...”或其他内容。提前致谢。
//toggle state of div - show OR hide - default is hidden
function shoh(id, cmd) {
// if cmd is not blank, clicked on button to expand all or collapse all
cmd = typeof cmd !== 'undefined' ? cmd : '';
if (document.getElementById(id)){
if ((document.getElementById(id).style.display == "none" || cmd=='show') && cmd!=='hide'){
//show
document.getElementById(id).style.display = 'block';
filter(("img"+id),'imgin');
setCookie(window.location.pathname + ":" + id, "show", 365)
} else {
//hide
document.getElementById(id).style.display = 'none';
filter(("img"+id),'imgout');
deleteCookie(window.location.pathname + ":" +id);
}
}
}