[英]jQuery Fade in and Fade out image with Ajax
我正在尝试做一份简单的工作。 我有一系列缩略图和主图片。
http://activate5.info/index.php#portfolio
单击缩略图后,我需要执行ajax调用来查找数组,该数组将返回新的图像和文本信息。 然后,我需要淡出主画面,并用来自ajax调用的新信息替换它。
它正在工作,但是生涩。 发生的事情(我认为)是淡入淡出,但是淡入淡出是抖动的,因为图像是页面的新内容,并且以不稳定的方式显示,就像通常在页面上加载图片时一样。
我希望它平滑-因此,理想情况下,在图像完全淡入之前,我需要某种警报/触发器,然后再淡入图像。我敢肯定这是一个简单的答案-但我们将不胜感激。
我已经将淡出/淡入内容放入了ajax调用的“成功”部分中...
$.ajax({
url: 'resources/portfolio/ajax_portfolio_data.php',
data: { client: clientCode,
slide: slideNumber
},
success: function(data) {
$('#slide'+slideNumber+'_portfolio').fadeOut('slow',function(){
$('#slide'+slideNumber+'_portfolio').html($.parseJSON(data));
$('#slide'+slideNumber+'_portfolio').fadeIn('slow');
});
}
});
我真的不想预加载所有可用的图像,因为那样会使原本已经很大的页面浏览速度进一步降低-任何人都有更好的方法来执行此操作?
PHP文件返回的(数据)示例如下:
$html = "<div class='slideMainImage'><img src='"
. $portfolio[$slide][$client]['image'] . "' /></div>";
$html .= "<p>" . $portfolio[$slide][$client]['text'] . "</p>";
echo json_encode($html);
提前致谢。
您可以在ajax success
添加图像,将其隐藏并附加onload事件处理程序 。 加载后,您将执行success
当前执行的代码。
请注意,这种效果可能会更平滑,但是整个过程会变慢,因为效果仅在图像完全加载后才开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.