JQuery FancyBox - 显示覆盖的图像

时间:2012-02-20 21:38:46

标签: jquery image fancybox

我正在开发用户个人资料图片控件。此控件允许用户为其配置文件上传自己的自定义图像,该图像显示为隐藏在页面一角的小缩略图。我正在使用FancyBox来显示完整尺寸的图像。 这是问题,当上传新图像时,FancyBox会显示与原始图像尺寸相同的新图像!

如果每个图片上传都会生成新的网址,但我根据用户的ID获取了我的图片网址,则此问题不存在。例如:url =“../ profileImages / user_3.jpg” 换句话说,上传新的配置文件图像会覆盖当前图像。

对于那里的一些专家,我尝试在网址中添加一个查询参数,例如:“../ profileofImages / user_3.jpg?value = 123”,它不起作用。

在没有进入我正在使用的所有代码的情况下,我创建了一个完全展示问题的简单示例。

<html>
<head runat="server">
<title></title>
<script src="../jquery-1.6.2.js" type="text/javascript"></script>
<script src="../fancybox-1.3.4.js" type="text/javascript"></script>
<script src="../fancybox-1.3.4.pack.js" type="text/javascript"></script>
<link href="../jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" />

<script>
$(document).ready(function() 
{
$("#example").fancybox() 
});
</script>
</head>
<body runat="server">
<div>
<a id="example" href="TestImg.jpg"><img alt="example" src="TestImgThumb.jpg" /></a>
</div>

</body>
</html>
  1. 创建两个图像。最好是人们所以你可以看到规模伸展问题更加清晰。 确保第一张图像明显大于第一张图像,并将其命名为:TestImg.jpg

  2. 在浏览器中打开网页,通过FancyBox查看图片。

  3. 现在删除第一张图片并将第二张(较小的)图片重命名为:TestImg.jpg

  4. 再次打开网页以查看问题。超链接中的图像是正常的,但FancyBox渲染的图像会拉伸到原始图像的尺寸。

  5. 如果您需要进一步澄清任何事情,我将很乐意帮忙。

1 个答案:

答案 0 :(得分:0)

我通常会为缩略图创建时间标记图像。例如,在您的情况下,[UserId_yyyyMMdd_hh_mm_ss] .jpg然后将其存储在我的数据库中。我还会覆盖文件系统上的原始文件,以便您以后可以对其进行操作,但是您要提供的图像是您使用唯一名称存储在数据库中的图像。

您似乎希望避免将图像URL(或图像)存储在数据库中,这就是您遇到缓存问题的原因。仅仅使用用户ID对于这些类型的图像并不是一个好主意,因为您将遇到缓存问题。