Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 名为'animate'的JS函数不';不在Chrome中工作,但在IE中工作_Javascript_Html_Css - Fatal编程技术网

Javascript 名为'animate'的JS函数不';不在Chrome中工作,但在IE中工作

Javascript 名为'animate'的JS函数不';不在Chrome中工作,但在IE中工作,javascript,html,css,Javascript,Html,Css,这行不通,什么也没发生。我如何让它工作,我做错了什么 function animate(){ var div=document.getElementById('demo'); div.style.left=“200px”; div.style.color=“红色”; } #演示{ 位置:绝对位置; } lolol如评论中所述,修复方法是重命名函数,因为Chrome似乎保留了原始名称 元素。动画() 即将发布的Web动画JavaScript API允许您通过脚本设置Web内容的动画。今天Beta

这行不通,什么也没发生。我如何让它工作,我做错了什么

function animate(){
var div=document.getElementById('demo');
div.style.left=“200px”;
div.style.color=“红色”;
}
#演示{
位置:绝对位置;
}

lolol

如评论中所述,修复方法是重命名函数,因为Chrome似乎保留了原始名称

元素。动画()

即将发布的Web动画JavaScript API允许您通过脚本设置Web内容的动画。今天Beta版中包含的element.animate()函数是Chrome中提供的API的第一部分:它使使用JavaScript创建简单的CSS动画成为可能。这意味着可以动态生成动画,而无需支付CSS样式的重新计算成本。以这种方式创建的动画也可以取消,并提供有保证的结束事件(相反,CSS转换仅在导致样式更改时生成事件)

这是原始
动画
功能的使用示例:

elem.animate([
    {transform: 'translateX(0px)'},
    {transform: 'translateX(100px)'}
], 3000);

问题是,因为你使用了一个,你的全局函数

window.animate
…被…笼罩着

Element.prototype.animate
…最近于年推出:

由于DOM元素可能是动画的目标,因此 接口[DOM4]扩展如下:

Element implements Animatable;
这允许以下类型的使用

elem.animate({ color: 'red' }, 2000);
此行为的解释如下所示:

词汇环境范围

  • 如果H是一个元素的,那么让作用域成为NewObjectEnvironment(文档,全局环境)的结果

    否则,H是对象的:let 范围是全球环境

  • 如果表单所有者不为null,则让作用域成为NewObjectEnvironment的结果(表单所有者,作用域)

  • 如果元素不为null,则将范围设为NewObjectEnvironment(元素,范围)的结果

  • 注意:NewObjectEnvironment()是在ECMAScript edition 5部分中定义的

    这意味着目标元素的作用域会影响全局作用域

    因此,你可以

    • 重命名你的函数

      函数设置动画{
      var div=document.getElementById('demo');
      div.style.left=“200px”;
      div.style.color=“红色”;
      }
      #演示{
      位置:绝对位置;
      }

      单击我

      我刚刚遇到了同样的问题。现在我知道“animate”是一个保留的词或什么的。我把函数名从“animate”改为“anim”,程序运行良好。真是个恶作剧

      未捕获类型错误:未能对“元素”执行“动画”:有效的算术为:[1],但提供了0个参数。在Chrome中不工作,在IE中工作。~~~它与p标记上的onclick无关,但与animate函数有关。将animate重命名为anim。似乎animate是一个保留字(在Chrome中)second@mplungjan。。。这里有很多人先投反对票,然后再动脑筋。。。别理他们。你的问题很好,我只是把标题改了一点,以便更好地反映这个问题,并将帮助未来偶然发现这个问题的用户。欢迎来到SO!找到了。“我不能很快找到它,因为它不是一个ecmascript,谢谢你,@mplungjan。”。我认为这不是ecma,所以直接去寻找Chrome(ium)的实现。这可能是最完整的答案。顺便说一句。为什么要使用
      var div=document.getElementById('demo')shouldnt
      var div=this足够吗?如果没有修复id,它甚至可以用于多个元素…@wawa好的,没错,我只是使用了OP的代码。为了保持简单,我将保持原样(而不是在使用事件处理程序内容属性时使用
      call
      this
      传递给函数)。