【问题标题】:animating GIF on draggable(): jquery在可拖动()上动画 GIF:jquery
【发布时间】:2011-06-18 08:09:53
【问题描述】:

我希望利用 jQuery 的 UI 插件来创建类似于 this jsfiddle 的 draggable() 和 droppable() 行为。唯一的区别;我希望购物车在激活 draggable() 时播放动画,以使用户可以更清楚地看到他们可以放置物品的位置。

但是,我需要的动画无法通过 CSS 完成,它是图像本身的动画。我有动画的 GIF 和等效的 JPEG 序列,以效果最好的为准。实现此目的最优雅的方法是什么?

仅供参考:代码来自IBM developerWorks article by Michael Abernethy

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

    您可以为 draggable's start 事件添加回调以更改购物车图像的 src 属性,然后添加 stop 回调以将其更改回来。

    现场示例:http://jsfiddle.net/ambiguous/yM9s5/6/

    另一种方法是这样的:

    1. 将您的<img> 放置目标替换为<div>
    2. 通过 CSS 调整 <div> 的大小以匹配 <img>
    3. <div>添加背景图片以匹配<img>的视觉效果。
    4. background-image 添加到您的border 类并将该图像设置为您的动画GIF。

    例如:http://jsfiddle.net/ambiguous/yM9s5/5/

    这应该适用于动画 GIF,但我没有方便检查。

    【讨论】:

    • 对于您的第一种方法 - 正如我所提到的,我需要播放 sequence 图像,这是最重要的...从一个到另一个翻转很容易完成。您的第二种方法与使用非 GIF 格式的图像类似,它是从仅一个图像到另一个图像的过渡。不满足N张图片的需求。其次,当一个 GIF 被用作 div 的背景图片时,它将永久地通过 GIF 播放。我要求它只播放一次并在最后一帧结束。有什么想法吗?
    • @Jordan:使用打开了“播放一次”标志的动画 GIF。您应该能够毫不费力地将您的图像序列转换为单个动画 GIF,因此您只需要一张图像。
    • 我不知道 GIF 可以启用“播放一次”标志。通过关注a youtube video,我能够在 Photoshop 中创建非循环 GIF。让 mouseover() 触发动画就像 attr("src") 交换一样简单。谢谢。
    • @Jordan:我必须检查标志以确保我记得正确的事情,找到相同的视频:)
    猜你喜欢
    • 2013-11-20
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多