对于跨浏览器的确定性等我用了两个菜单,一个用于桌面和一个用于移动。随着媒体查询,我显示一个,并隐藏另一个。我的问题是,当我按Ctrl + F5或导航到移动版本的另一个页面时,桌面菜单在加载时显示几秒钟。有任何想法吗?带显示的元素:无显示负载
回答
这就是所谓的FOUC(未闪烁的内容的闪光)和通常的原因是JavaScript在页面加载运行。在显示之前,浏览器会暂停显示几秒钟(或十分之一秒)的页面。通过webpagetest.org和zoompf.com运行您的站点,以确定减慢页面加载的问题。
为了在短期内帮助您,请在生成页面时为元素添加样式属性,并动态设置值(例如,对于PHP:
<div id="desktop-menu" style="display:<?php echo $mobile ? 'none' : 'block'; ?>">
编辑:我刚才注意到你加了标签的页面jquery
。据推测,那么你的代码隐藏元素这样的:
$(function(){$('desktop-menu').toggle();});
,当你的网页浏览器有完成页面加载运行。在这种情况下最好的做法是将CSS diaply:none
内联为style
属性,并简单地转储jQuery调用。
感谢很多人,一个问题,即时通讯不太确定如何使用jQuery打开或关闭菜单?以供参考:http://memre.loudcrowd.co.za – Dale
请参阅http://api.jquery.com/category/effects/basics/请注意,您的菜单包装在我的浏览器(Windows上的Chrome,大量的屏幕空间):http://web.nickshanks.com/stackoverflow/17654251/memre.png –
你确实需要有2个菜单吗?
我知道自己在TrulyCode.com我有1个菜单,但随后通过媒体查询不同风格它,它会从一个基本的菜单栏,到屏幕外侧栏移动。
之前你去试图找到你的2个菜单方式的解决方案,看看你是否能拿到1个菜单适合所有的风格,因为它会与搜索引擎优化,速度帮助,只是一般更一致。
正如谢霆锋所说,这只是一个无样式内容闪烁,浏览器已经得到了该项目的HTML,但不是所有的相关的CSS,JS或。
虽然,我不会像尼古拉斯用display:none
内嵌建议的那样去做,就好像JS尚未加载/被阻止/禁用那么您的用户将根本没有菜单!
- 1. 显示带柄的元素
- 2. 是否显示:无加载元素?
- 3. CSS:显示显示:内显示块元素:行内元素
- 4. 空元素javascript显示:无
- 5. 显示:无伪元素?
- 6. 显示元素
- 7. 显示元素
- 8. 显示带有jQuery的下拉元素
- 9. 带属性的显示元素
- 10. 显示负载效应
- 11. 页面加载中未显示的SVG元素不显示
- 12. 通过javascript显示一个元素后又一个负载?
- 13. 元素与显示:块不显示
- 14. Javascript不显示元素与显示=“块”
- 15. 在另一个没有显示的地方显示元素:无
- 16. 显示div元素
- 17. 元素不显示
- 18. 显示Jsoup元素
- 19. 元素只显示
- 20. 显示元素ID
- 21. 无法显示已添加的元素
- 22. “显示:无”的元素仍然可见
- 23. CSS,JQuery - Flex元素在显示后不显示:无;
- 24. IE7:元素显示甚至与显示:无
- 25. jQuery hide()方法显示元素与显示:无!重要
- 26. IE 7显示隐藏和显示无元素
- 27. jQuery,CSS:显示后动态显示以下DOM元素:无
- 28. 在页面加载后显示元素
- 29. 页面元素并不明显负载
- 30. 显示arraylist的元素
听起来像一个JavaScript的东西,你可以请张贴一些代码?另外,你如何在移动设备上按ctrl + f5 ...? – David
@David他的意思是通过任何可用的机制'刷新页面',但有些平板电脑确实有USB端口,所以如果您插入键盘,可以按Control-F5! –
隐藏你的一般CSS的两个菜单,并显示正确的使用媒体查询/ js – Huangism