如果浏览器支持js,我想显示加载动画。如果javascript被禁用,那么图像将显示但永远不会被隐藏,在这种情况下。 为此,我在标记
之后直接编写了这段代码<?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
有任何建议可以实现我的想法吗?请帮忙
答案 0 :(得分:1)
你可以使用:
<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>
...
如果你想完成aquastyle.az所做的事情(尽管上面的解决方案更快),你可以这样做:
<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>
...
答案 1 :(得分:1)
在您的HTML中,您可以执行以下操作:
<html class="no-js">
...
然后,加载页面后,通过JavaScript将no-js
类替换为js
类。
$(window).load(function(){
$('html').removeClass('no-js').addClass('js');
});
最后,在你的CSS中,如果浏览器支持js则显示加载图像,如果没有则隐藏它。
.js #loading {
display: block;
}
.no-js #loading {
display: none;
}
这有意义吗?
答案 2 :(得分:0)
get_browser
函数必须下载相应的INI文件并将其包含在PHP.ini文件中。
不是试图弄清楚用户是否启用了javascript,为什么不从渐进增强的角度构建网站,因此它适用于所有用户,无论他们的浏览器设置如何。
或者,您可以要求javascript设置cookie,然后检查PHP中是否存在cookie,这绝不是100%万无一失的方法,但可以适用于您的情况。