jquery - Google Chrome 中使用 jQuery 的动画工件(红/蓝移)

标签 jquery google-chrome animation

我正在尝试为具有透明背景的 DIV 制作动画。 JS 在这里 --> http://pastebin.com/fvK2FV5W

动画工作正常,但左右动画时屏幕上出现伪像(向上和向下不受影响)。

症状:

  • 向左动画时,最右边的白色像素会出现红色线条。

  • 当动画向右时,我会在最左边的白色像素上看到蓝色的线条。 (参见/image/2UQg6.png)

  • 仅在右/左动画时发生,而不是在上/下动画时发生

  • Chrome (17.0.9)、jQuery (1.7.1)、Windows 7

我以前从未见过这种情况,而且只出现在 Chrome (v 17.0.9) 中。

有什么想法可能导致这种情况吗?


编辑//测试:

  • 当将文本的颜色从白色更改为蓝色、从白色更改为红色时 - 条纹会反射(reflect)文本的颜色。将文本设为红色...蓝线为黑色。将文本设为蓝色...红线为黑色。

  • 禁用 webGL - 没有改变任何内容。

  • 只有当动画移动速度低于一定速度时才会出现条纹。当将动画向右缓动时,我得到看起来像 /image/2UQg6.png 的线条

  • 感谢 Beetroot-Beetroot 说这可能是我的代码过于复杂的结果。看起来这可能是问题所在,仍在测试中。

最佳答案

Circusdei,您当前的代码比需要的要复杂得多。在做任何其他事情之前,请先考虑一下 jQuery 完成回调和动画链 - 请参阅 animate() in the jQuery documentation

要在 jQuery 动画完成时发生某些事情,无需使用单独的 setTimeout 来预期完成;相反,指定一个“完整”回调函数。例如第一种情况可以重写如下......

JavaScript:

case "top":
    slide.animate({top: verticalGutter+'px'}, slideTimeIn, 'easeInOutQuad', function(){
        slide.animate({top: (verticalGutter+extraSlide)+'px'}, slideTimeFloat, 'easeOutQuint', function(){
            slide.animate({
                top: (viewportHeight-slideHeight)+'px',
                opacity: 0
            }, slideTimeOut);
        });
    });
break;

请注意“完成后做什么”回调函数如何作为外部两个动画的最后一个参数给出。最里面的动画没有回调。

这(多次),加上消除不必要的换行符,将显着缩短您的代码。它将变得更具可读性,甚至可能消除 Chrome 中令人讨厌的红/蓝线伪影。

编辑:事实上它可以更简单。由于顺序动画的主题在所有三种情况下都是相同的,因此 jQuery 允许您按如下方式建立动画链:

JavaScript:

case "top":
    slide.animate({
        top: verticalGutter+'px'
    }, slideTimeIn, 'easeInOutQuad').animate({
        top: (verticalGutter+extraSlide)+'px'
    }, slideTimeFloat, 'easeOutQuint').animate({
        top: (viewportHeight-slideHeight)+'px',
        opacity: 0
    }, slideTimeOut);
break;

编辑2:参见http://pastebin.com/aHxUsL78看看代码可以简化多少。

关于jquery - Google Chrome 中使用 jQuery 的动画工件(红/蓝移),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9368864/

相关文章:

JavaScript 导航菜单多次点击

javascript - 有没有办法根据盒子中剩余的空间显示按钮

google-chrome - 如何使用 Capybara/Selenium 在 Chrome 上下载多个文件?

android - 尝试从此处在 android 中实现页面 curl 示例

javascript - 当浏览器下载所需文件时,GIF 在启动画面中缓慢动画

javascript - 按回车离开 ContentEditable 框

javascript - Jquery 按变量向左或向右动画

声明前在 Google Chrome 控制台中记录的 Javascript 对象属性

google-chrome - 无法从 RTCPeerConnection 获取 IP V4 地址 - chrome

c# - 切换时触发尺寸动画