Tur*_*ard 10 html javascript css
这不起作用,没有任何反应.我如何使它工作,我做错了什么?
function animate() {
var div = document.getElementById('demo');
div.style.left = "200px";
div.style.color = "red";
}Run Code Online (Sandbox Code Playgroud)
#demo {
position: absolute;
}Run Code Online (Sandbox Code Playgroud)
<p id='demo' onclick="animate()">lolol</p>Run Code Online (Sandbox Code Playgroud)
Ori*_*iol 13
问题是,因为你使用事件处理程序内容属性,你的全局函数......
window.animate
Run Code Online (Sandbox Code Playgroud)
......被......遮蔽了
Element.prototype.animate
Run Code Online (Sandbox Code Playgroud)
...最近在Web动画中介绍的... :
由于DOM Elements可能是动画的目标,因此Element 接口[ DOM4 ]扩展如下:
Run Code Online (Sandbox Code Playgroud)Element implements Animatable;这允许以下类型的使用.
Run Code Online (Sandbox Code Playgroud)elem.animate({ color: 'red' }, 2000);
获取事件处理程序的当前值的步骤10中解释了此行为:
词汇环境范围
如果H是元素的事件处理程序,那么让Scope成为NewObjectEnvironment(文档,全局环境)的结果.
如果表单所有者不为null,则让Scope为NewObjectEnvironment(表单所有者,作用域)的结果.
如果element不为null,则让Scope为NewObjectEnvironment(element,Scope)的结果.
注意:NewObjectEnvironment()在ECMAScript第5版第10.2.2.3节NewObjectEnvironment(O,E)中定义
这意味着目标元素的范围会影响全局范围.
因此,你可以
重命名您的功能
function animate__() {
var div = document.getElementById('demo');
div.style.left = "200px";
div.style.color = "red";
}Run Code Online (Sandbox Code Playgroud)
#demo {
position: absolute;
}Run Code Online (Sandbox Code Playgroud)
<p id='demo' onclick="animate__()">Click me</p>Run Code Online (Sandbox Code Playgroud)
使用window.animate(假设window没有被遮蔽):
<p id='demo' onclick="window.animate()">Click me</p>
Run Code Online (Sandbox Code Playgroud)
function animate() {
var div = document.getElementById('demo');
div.style.left = "200px";
div.style.color = "red";
}Run Code Online (Sandbox Code Playgroud)
#demo {
position: absolute;
}Run Code Online (Sandbox Code Playgroud)
<p id='demo' onclick="window.animate()">Click me</p>Run Code Online (Sandbox Code Playgroud)
使用事件处理程序IDL属性而不是内容属性1:
document.getElementById('demo').onclick = animate;
Run Code Online (Sandbox Code Playgroud)
function animate() {
var div = document.getElementById('demo');
div.style.left = "200px";
div.style.color = "red";
}
document.getElementById('demo').onclick = animate;Run Code Online (Sandbox Code Playgroud)
#demo {
position: absolute;
}Run Code Online (Sandbox Code Playgroud)
<p id='demo'>Click me</p>Run Code Online (Sandbox Code Playgroud)
document.getElementById('demo').addEventListener('click', animate);
Run Code Online (Sandbox Code Playgroud)
function animate() {
var div = document.getElementById('demo');
div.style.left = "200px";
div.style.color = "red";
}
document.getElementById('demo').addEventListener('click', animate);Run Code Online (Sandbox Code Playgroud)
#demo {
position: absolute;
}Run Code Online (Sandbox Code Playgroud)
<p id='demo'>Click me</p>Run Code Online (Sandbox Code Playgroud)
正如评论中所提到的,修复是重命名该功能,因为Chrome似乎保留了原始名称.
element.animate()
即将推出的Web Animations JavaScript API可让您通过脚本为Web内容添加动画效果.今天Beta中包含的element.animate()函数是Chrome中的第一部分API:它可以使用JavaScript创建简单的CSS动画.这意味着可以动态生成动画而无需支付CSS样式重新计算成本.以这种方式创建的动画也是可取消的,并提供有保证的结束事件(相比之下,CSS Transitions仅在它们导致样式更改时才生成事件).
http://blog.chromium.org/2014/05/chrome-36-beta-elementanimate-html.html
这是原始animate函数的用法示例:
elem.animate([
{transform: 'translateX(0px)'},
{transform: 'translateX(100px)'}
], 3000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2141 次 |
| 最近记录: |