暂停javascript中的GIF

pausing GIF in javascript

本文关键字:GIF 中的 javascript 暂停      更新时间:2023-09-26

背景:尝试制作GIF暂停按钮,跨浏览器

初始实现(适用于Chrome/Safari):将gif绘制到画布并正确显示画布会"暂停"gif。但在FF和IE中,它不起作用(FF-它只显示第一帧,IE-即使使用excanvas也显示gif仍然是动画,而不是帧)

什么是FF和IE中的暂停GIF在选择窗口的情况下按下ESC按钮将暂停FF和IE 中当前显示页面上的GIF图像

那么我想做什么呢所以对于FF和IE,我试图实现一些触发ESC键的东西。。。我确实。。。并且它成功地触发了ESC按键。。。但它不会暂停GIF。

我所要做的就是在Firefox和IE中模拟一个escape按键。

我尝试了什么

// defined before the script that calls it
jQuery.fn.simulateKeyPress = function(keyCode) {
  // Internally calls jQuery.event.trigger
  // with arguments (Event, data, elem). That last arguments is very important!
jQuery(this).trigger({ type: 'keypress', which: keyCode, keyCode: keyCode });
};
// Simulate the key press, in something called onclick of a button element
$(document).simulateKeyPress(27);

不要在上面的代码上建议我,因为我复制了相关的片段,我确信它能工作10000000%,因为我在按下esc时绑定了一个警报,当点击触发simulateKeyPress()调用的按钮时就会出现。只是为了表明我试过了。

因此,基本上,模拟ESC不会像在FF和IE中按下ESC那样暂停GIF,也就是说,按下ESC会暂停FF和IE中的GIF,而触发27(即ESC)的按键按下(也尝试了按键按下)事件不会做到这一点。为什么?有什么变通办法吗???

使用javascript更改div的背景位置,将gif的帧转换为sprite图像,并将其设置为背景图像。那么,在您选择的任何事件上中断间隔计时器就很简单了。