如果浏览器支持JS,我想显示加载动画。如果JavaScript被禁用,那么图像将显示,但永远不会隐藏,在这种情况下。为此,我直接在<body>
标记之后编写了以下代码:
<?php
$results = get_browser();
if ($results["javascript"] == 1) {
echo '<div id="loading"><img src="core/design/img/load/load.gif"/></div>';
}
?>
我的js是这样的
$(window).load(function(){
$('#loading').fadeOut(600);
});
得到错误信息browscap ini directive not set in
。我怎样才能实现我的想法?
你可以直接使用:
<body>
//set the div to hidden by default
<div id="loading" style="display:none"><img src="core/design/img/load/load.gif"/></div>
//place this code directly below the loading div, it will run before page/dom is loaded
<script type="text/javascript">
document.getElementById('loading').style.display = 'block';
</script>
<script type="text/javascript">
$(function() {
//this will run after the page has loaded
$('#loading').fadeOut(600);
});
</script>
...
如果你想做到底什么水上运动。(尽管上面的解决方案更快),您可以这样做:
<body>
<script type="text/javascript">
//if JavaScript is enabled, append the loading div to be body
$('body').append('<div id="loading"><img src="core/design/img/load/load.gif" /></div>');
</script>
<script type="text/javascript">
$(function() {
//this will run after the page has loaded
$('#loading').fadeOut(600);
});
</script>
...
在您的HTML中,您可以这样做:
<html class="no-js">
...
然后,一旦页面加载,通过JavaScript将no-js
类替换为js
类。
$(window).load(function(){
$('html').removeClass('no-js').addClass('js');
});
最后,在CSS中,如果浏览器支持js,则显示正在加载的图像,如果浏览器不支持js则隐藏它。
.js #loading {
display: block;
}
.no-js #loading {
display: none;
}
明白了吗?
get_browser
函数必须下载相应的INI文件并包含在PHP.ini文件中。
与其试图弄清楚用户是否启用了javascript,不如从渐进式增强的角度来构建站点,这样它就可以适用于所有用户,而不管他们的浏览器设置如何。
或者,你可以让javascript设置一个cookie,然后检查cookie是否存在于PHP中,这绝不是100%万无一失的方法,但可以为您的情况工作。