Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 页面加载时不透明度为零,但使用渐进增强方法?_Jquery_Css - Fatal编程技术网

Jquery 页面加载时不透明度为零,但使用渐进增强方法?

Jquery 页面加载时不透明度为零,但使用渐进增强方法?,jquery,css,Jquery,Css,我想有一些图像淡入网页作为网页加载,所以从不透明度:0开始,然后淡入不透明度:1使用图像加载脚本 但是,要使脚本工作,图像最初必须是不可见的。因此,如果我使用CSS将不透明度设置为零,如果用户没有javaScript,他们将看不到任何图像 为了解决这个问题,我尝试通过jQuery应用零透明度,如下所示 $(".images").css('opacity', 0); …然而,我仍然会在100%不透明度下看到闪烁的图像,然后jQuery开始运行,将它们隐藏起来,只会随着图像加载脚本再次淡入 那么

我想有一些图像淡入网页作为网页加载,所以从不透明度:0开始,然后淡入不透明度:1使用图像加载脚本

但是,要使脚本工作,图像最初必须是不可见的。因此,如果我使用CSS将不透明度设置为零,如果用户没有javaScript,他们将看不到任何图像

为了解决这个问题,我尝试通过jQuery应用零透明度,如下所示

 $(".images").css('opacity', 0);
…然而,我仍然会在100%不透明度下看到闪烁的图像,然后jQuery开始运行,将它们隐藏起来,只会随着图像加载脚本再次淡入

那么,在加载图像之前,隐藏图像的最安全方法是什么,这样即使用户禁用了javaScript,他们仍然能够看到图像,只是无法获得奇特的图像加载效果


提前感谢

这是我最后一次尝试,因为你到处都是:

<noscript>
<style type="text/css">
.images {
opacity:1;
}
</style>
</noscript>
在jquery中:

$('.images').fadeIn();
如果有人没有javascript,那么它将点击noscript标记并将图像的不透明度更改回1。老实说,现在谁没有javascript?

如果您使用的是“图像加载脚本”,即通过js加载,您可以执行以下操作:

var img = $(document.createElement('img'));
img.on('load.fade-image', function () {
  // Note: set opacity of the image before adding it to the DOM, this way it will be rendered with 0 opecity
  img.css('opacity', 0);
  img.appendTo('body');
});
img.attr('src', 'http://some-url');

你能在加载时隐藏图像,然后让jquery在淡入淡出之前使其可见吗?你的大部分观众会禁用javascript吗?我相信这是非常罕见的。我同意Rich,但是我想展示的部分是网站的一个非常重要的部分,我花了很多时间让每个人都能尽可能地访问这个网站,所以如果因为这个小问题而破坏它,那将是一种耻辱。我不太清楚你的意思。用jQuery隐藏?当你完全误解了这个问题时,CSS仍然会闪现它。我试图找到一种更安全的方法来隐藏图像,最好是使用JavaScription,这更糟糕!那么如果用户没有javaScript,整个页面将是空白的?我正在寻找一个后备方案,如果用户没有javaScript,那么至少页面和图像仍然可见,它们不会得到很酷的图像加载效果。你说的是矛盾的事情!你刚才说“我正试图找到一种更安全的方法来隐藏图像,最好是使用javascript”,那么你为什么说“最好使用javascript”!???请拿定主意。。。如果你想在没有javascript的情况下完成这项工作,我很抱歉,但这可能不是一个好方法。您希望在理想情况下不使用javascript实现这一点…顺便说一句,最初使用CSS隐藏图像是我的解决方案,风险很小,因此我不确定您的问题是什么。。。CSS永远不会在浏览器中工作。我不理解你的问题,因为它被问错了,或者你不太确定你在问什么。好吧,我想用javascript隐藏图像,这样可以防止图像的早期闪烁显示。
var img = $(document.createElement('img'));
img.on('load.fade-image', function () {
  // Note: set opacity of the image before adding it to the DOM, this way it will be rendered with 0 opecity
  img.css('opacity', 0);
  img.appendTo('body');
});
img.attr('src', 'http://some-url');