jquery - 使用 jQuery animate 制作具有 200 毫秒交叉淡入淡出效果的 img 切换源?

标签 jquery jquery-animate image fade src

这是我的相关代码,我根据点击的位置切换图像。有什么方法可以让我逐渐切换图像吗?也许在切换时为它们设置动画?一种淡入淡出。

<script type="text/javascript">
    jQuery(document).ready(function ($) { //fire on DOM ready
        $('#mainproductpicture').addpowerzoom({
            defaultpower: 2,
            powerrange: [2, 5],
            largeimage: null,
            magnifiersize: [200, 200] //<--no comma following last option!
        })

        $('#smallpictureone').click(function () {
            $("#mainproductpicture").attr("src", $(this).attr("src"));

            $('#mainproductpicture').addpowerzoom({
                defaultpower: 2,
                powerrange: [2, 5],
                largeimage: null,
                magnifiersize: [200, 200] //<--no comma following last option!
            })
        });

        $('#smallpicturetwo').click(function () {
            $("#mainproductpicture").attr("src", $(this).attr("src"));

            $('#mainproductpicture').addpowerzoom({
                defaultpower: 2,
                powerrange: [2, 5],
                largeimage: null,
                magnifiersize: [200, 200] //<--no comma following last option!
            })
        });

        $('#smallpicturethree').click(function () {
            $("#mainproductpicture").attr("src", $(this).attr("src"));

            $('#mainproductpicture').addpowerzoom({
                defaultpower: 2,
                powerrange: [2, 5],
                largeimage: null,
                magnifiersize: [200, 200] //<--no comma following last option!
            })
        });

        $('#smallpicturefour').click(function () {
            $("#mainproductpicture").attr("src", $(this).attr("src"));

            $('#mainproductpicture').addpowerzoom({
                defaultpower: 2,
                powerrange: [2, 5],
                largeimage: null,
                magnifiersize: [200, 200] //<--no comma following last option!
            })
        });

        $('#smallpicturefive').click(function () {
            $("#mainproductpicture").attr("src", $(this).attr("src"));

            $('#mainproductpicture').addpowerzoom({
                defaultpower: 2,
                powerrange: [2, 5],
                largeimage: null,
                magnifiersize: [200, 200] //<--no comma following last option!
            })
        });
    });
</script>

我还有另一个关于我的 JavaScript 代码的相关问题。我正在使用我在网上找到的一个 Javascript 库,它允许我很好地缩放图像。但是,当我将 src 切换到另一个图像时,缩放仍保留在第一个图像上。因此,每次单击时,我都会将库“重新 Hook ”到图像。 这是否会对我的性能造成负面影响?当前一代人会在我之后正确清理吗?

最佳答案

您无法为 src 属性设置动画(我不敢相信我刚刚写了这个)。如果您希望图像交叉淡入淡出,则必须将它们放在另一张的上面,并设置顶部图像的不透明度动画。

至于你的“重新 Hook ”对性能造成了负面影响:不。这才是 Javascript 应该使用的方式。

关于jquery - 使用 jQuery animate 制作具有 200 毫秒交叉淡入淡出效果的 img 切换源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070681/

相关文章:

javascript - 如果我知道纬度和经度,谷歌地图如何添加标记

javascript - Highcharts:Y 轴标签格式化程序

javascript - json 无法在 Bottle 框架中的 javascript 中工作

jquery - 悬停时 Div 样式发生变化?

asp.net - 使用 ASP.NET Web API 作为图像服务

jquery 在单击的实例之后查找下一个图像

javascript - 如何使用 jquery 删除和替换选择选项?

html - 重启整个 SVG animateTransform 序列?

javascript - 如何滑动切换 Selectize.js 下拉菜单?

javascript - 上传前显示缩略图