如果浏览器支持js,如何显示加载动画

时间:2011-09-28 03:42:30

标签: php javascript

如果浏览器支持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有任何建议可以实现我的想法吗?请帮忙

3 个答案:

答案 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%万无一失的方法,但可以适用于您的情况。