[英]jQuery: Change image on checkbox click
我想在单击复选框时更改图像。 在新映像完全加载之前,加载程序映像应出现在当前映像的顶部。 加载时,当前图像的不透明度也应更改为0.5。
因此,该功能应包括以下步骤:
在复选框上,单击:
加载时:
加载新图像时:
jQuery如何做到这一点?
预先感谢所有建议!
这些步骤实际上应该是
在复选框上单击,开始预加载新图像
首先创建一个Image对象,然后将其load属性设置为一个函数,一旦图像完全加载,该函数将被调用。 然后( 在设置load属性之后 )将我们创建的Image对象的src
属性设置为图像的Url。
等待时,设置不透明度,显示加载程序
您可以使用css属性opacity
控制opacity
。 您应该已经在页面中安装了加载器,但是已经隐藏了,只需在进行预加载时显示它即可。
预加载完成后,隐藏预加载器,显示图像重置不透明度
我们为定义的函数load
属性被调用和处理程序中,我们重新设置不透明度,隐藏预加载并设置src
页面我们元件与src
我们创建的图像对象的..
这是一个完整的示例: http : //www.jsfiddle.net/kqC9U/
好吧,让我们花点时间分析一下问题:
如果要更改图像源(几乎可以立即完成),为什么需要加载程序gif? 实际上,显示加载程序gif所需的时间与显示新图像所需的时间相同。 如果您希望loader gif具有惊人的吸引力,则可以显示loader.gif,等待5秒钟,然后更改为新图像。
更改图像可以轻松地通过更改当前图像上的src属性来完成。 例如,
$.('#myCheckboxID').change(function()
{
$.('#myPictureID').attr('src', "path/to/new/image/");
});
让我知道是否您决定需要该gif加载器才能产生戏剧性的效果,我会帮助您进行连接
编辑:由于需要加载效果,请尝试类似的操作。 我将写下一些伪代码,让我知道它是否不够具体。
Change the source on your first picture
Hide the first picture for x seconds (get a feel for how long it takes to load)
Unhide a loading gif of the same size with opacity already set
hide the loading gif and unhide the first picture
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.