- 61
- 0
这段代码摘抄自Javascript DOM编程艺术第2版 第十章 192页
请问倒数第二行变量 movement 有什么作用??只有时间函数也可以运行,没看到哪里用到这个变量啊。192页说动画效果不正确是由全局变量引起的,不懂怎么影响到的
代码如下 moveElement.js
function moveElement(elementID,final_x,final_y,interval) {
if (!document.getElementById) return false;
if (!document.getElementById(elementID)) return false;
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if (xpos == final_x && ypos == final_y) { //当前位置和目标位置对比
return true;
}
if (xpos < final_x) {
xpos++;
}
if (xpos > final_x) {
xpos--;
}
if (ypos < final_y) {
ypos++;
}
if (ypos > final_y) {
ypos--;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
movement = setTimeout(repeat,interval);
//上面
}
谢谢各位大神的指导!
- 共 0 条
- 全部回答
-
余生浅末 普通会员 1楼
在JavaScript DOM编程艺术的第十章中,您可能会遇到一些关于DOM操作、事件处理、文档对象模型(DOM)对象的结构和行为等方面的问题。以下是一些可能的示例代码和疑问,以及解答:
- DOM操作:
a.
document.getElementById():获取指定ID的元素:javascript const elementId = 'myElement'; const element = document.getElementById(elementId); console.log(element); // 输出:<div id="myElement">Hello, World!</div>b.
document.getElementsByTagName():获取所有匹配指定标签名的元素:javascript const elements = document.getElementsByTagName('div'); console.log(elements); // 输出:[<div id="myElement">Hello, World!</div>]c.
document.querySelectorAll():获取所有匹配指定选择器的元素:javascript const elements = document.querySelectorAll('div'); console.log(elements); // 输出:[<div id="myElement">Hello, World!</div>]d.
document.createElement():创建一个新的DOM元素:javascript const newElement = document.createElement('div'); newElement.textContent = 'This is a new element'; document.body.appendChild(newElement); console.log(newElement.textContent); // 输出:This is a new element- 事件处理:
a.
addEventListener():添加事件监听器到元素:javascript const element = document.getElementById('myElement'); element.addEventListener('click', function() { console.log('Element clicked!'); });b.
removeEventListener():移除事件监听器:javascript const element = document.getElementById('myElement'); element.removeEventListener('click', function() { console.log('Element clicked!'); });c.
dispatchEvent():触发事件:javascript const element = document.getElementById('myElement'); element.dispatchEvent(new MouseEvent('click')); console.log(element.dispatchEvent(new MouseEvent('click')); // 输出:true- DOM对象的结构和行为:
a. DOM元素属性:
javascript const element = document.getElementById('myElement'); console.log(element.style.color); // 输出:#ff0000 element.style.backgroundColor = 'red';b. DOM元素事件监听:
javascript const element = document.getElementById('myElement'); element.addEventListener('click', function() { console.log('Element clicked!'); }); element.addEventListener('mouseover', function() { console.log('Element hovered!'); }); element.addEventListener('mouseout', function() { console.log('Element left!'); });c. DOM元素事件处理:
javascript const element = document.getElementById('myElement'); element.addEventListener('click', function() { console.log('Element clicked!'); }); element.addEventListener('mouseover', function() { console.log('Element hovered!'); }); element.addEventListener('mouseout', function() { console.log('Element left!'); });d. DOM元素的DOM事件映射:
javascript const element = document.getElementById('myElement'); element.addEventListener('click', function() { console.log('Element clicked! Event mapped to the click event.'); }); element.addEventListener('mouseover', function() { console.log('Element hovered! Event mapped to the mouseover event.'); }); element.addEventListener('mouseout', function() { console.log('Element left! Event mapped to the mouseout event.'); });e. DOM元素的样式更改:
javascript const element = document.getElementById('myElement'); element.style.color = '#ff0000'; element.style.backgroundColor = 'red';f. DOM元素的
style对象:javascript const element = document.getElementById('myElement'); console.log(element.style.color); // 输出:#ff0000 element.style.backgroundColor = 'red';g. DOM元素的
textContent属性:javascript const element = document.getElementById('myElement'); element.textContent = 'Hello, World!'; console.log(element.textContent); // 输出:Hello, World!h. DOM元素的
innerHTML属性:javascript const element = document.getElementById('myElement'); element.innerHTML = 'Hello, World!'; console.log(element.innerHTML); // 输出:Hello, World!i. DOM元素的
querySelector()和querySelectorAll()方法:javascript const elements = document.querySelectorAll('.myClass'); console.log(elements); // 输出:[<div class="myClass">Hello, World!</div>] const elements2 = document.querySelectorAll('.myClass', '.myClass2'); console.log(elements2); // 输出:[<div class="myClass">Hello, World!</div>, <div class="myClass2">Hello, World!</div>]j. DOM元素的
style对象的CSSRules和style对象的children属性:javascript const element = document.getElementById('myElement'); const rules = element.style.cssRules; console.log(rules); // 输出:[CSSRule{color: #ff0000; background-color: red; }] console.log(element.style.children); // 输出:[<div class="myClass">Hello, World!</div>]k. DOM元素的
classList属性:javascript const element = document.getElementById('myElement'); const classes = element.classList; console.log(classes); // 输出:[classList includes: 'myClass', classList has 2 classes] console.log(element.classList.contains('myClass')); // 输出:truel. DOM元素的
classList的add()方法:javascript const element = document.getElementById('myElement'); element.classList.add('myClass'); console.log(element.classList.contains('myClass')); // 输出:truem. DOM元素的
remove()方法:javascript const element = document.getElementById('myElement'); element.classList.remove('myClass'); console.log(element.classList.contains('myClass')); // 输出:false-
DOM元素的选择器:
javascript const elements = document.querySelectorAll('.myClass'); console.log(elements.length); // 输出:4 console.log(elements[0].textContent); // 输出:Hello, World! console.log(elements[0].classList.contains('myClass2')); // 输出:false -
DOM元素的
classList的removeAll()方法:javascript const elements = document.querySelectorAll('.myClass'); elements.classList.removeAll('myClass'); console.log(elements.length); // 输出:4 console.log(elements[0].textContent); // 输出:Hello, World! console.log(elements[0].classList.contains('myClass2')); // 输出:true -
DOM元素的
style对象的get()和set()方法:javascript const element = document.getElementById('myElement'); const style = element.style; console.log(style.color); // 输出:#ff0000 style.color = '#00ff00'; console.log(style.color); // 输出:#00ff00
javascript const element = document.getElementById('myElement'); style.cssRules = []; element.style.cssRules.push({ color: '#00ff00' }); console.log(style.cssRules); // 输出:[CSSRule{color: #00ff00; }] element.style.cssRules = style.cssRules.concat([/* ... */]); console.log(style.cssRules); // 输出:[CSSRule{color: #00ff00; }, CSSRule{color: #ff0000; }]*注意:在示例代码中,我们在选择器上添加了
*(全选)和#(选中一个元素)的括号,这表示我们在选择所有匹配指定选择器的元素,例如,document.querySelectorAll('*')将返回所有匹配*的元素,document.querySelectorAll('#myElement')将返回匹配#myElement的元素。`以上就是DOM编程艺术第十章的一些示例代码和疑问解答,希望对您有所帮助。在实际编程中,您可能需要根据具体需求和场景,对DOM操作、事件处理、DOM元素结构和行为等方面进行深入理解和应用。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
