我正在尝试刷新图像,先删除然后用jQuery添加它的src
属性,但不幸的是,这会导致它崩溃并在重置后上下移动它下面的元素它,这很烦人。我怎么能避免这种行为?
相关HTML:
<figure>
<figcaption>Result</figcaption>
<img title="Result" id="result" src="http://example.com/image.bmp">
</figure>
相关CSS:
.gallery figure {
display: inline-block;
margin: 0;
padding: 0;
}
.gallery img {
min-width: 160px;
width: 65%;
}
(<figure>
元素包含在<section>
元素中,其中class =“gallery”)
答案 0 :(得分:1)
这样的事情会起作用:
var res = $("#result");
res.attr("height", res.height()); //fix the image's height
res.attr("width", res.width()); //fix the image's width
var prev = res.attr("src"); //cache the image's src
res.attr("src", ""); //remove src
res.attr("src", prev); //reset src to refresh image
如果有什么看起来含糊不清/可以理解,我很乐意解释它。
修改:另一种方法是使用div
包裹您的图片,并确保div
具有固定的高度/宽度。我们假设您的HTML看起来像:
<figure>
<figcaption>Result</figcaption>
<div id = "wrapper">
<img title="Result" id="result" src="http://example.com/image.bmp">
</div>
</figure>
JavaScript的:
var wrap = $("#wrapper");
wrap.css({"height": wrap.height(), "width": wrap.width()}); //fix height and width
var res = $("#result");
var prev = res.attr("src"); //cache the image's src
res.attr("src", ""); //remove src
res.attr("src", prev); //reset src to refresh image
我希望有所帮助!
答案 1 :(得分:0)
您需要为图片代码设置width
和height
属性。
类似的东西:
<img title="Result" id="result" src="http://example.com/image.bmp" width="250" height="120">
当然,只有了解确切的尺寸才能实现。
答案 2 :(得分:0)
您可以在图片上放置width
和height
属性,以便即使元素中没有图片也能保持其大小。
像这样:
<img src="" width="100" height="200"/>
如果图片的尺寸发生变化,我会忽略HTML中的width
和height
属性。相反,当您在jQuery中更改src
属性时,首先将宽度和高度属性添加到img标记以获取图像的大小,以便元素保持其大小。然后,在加载下一个图像时,删除这些属性,以便以全尺寸显示新图像。