为什么Javascript代码工作在底部而不是顶部?
Why does the Javascript code work at the bottom and not at the top?
这对我来说是个有趣的问题。下面的代码将工作,如果我在头部部分的页面顶部的代码。但代码将不工作,如果我有在页面底部的代码。这是为什么?我应该能够移动代码周围,它应该工作相同的我认为。因为当Java脚本位于Head部分上方时,它将检查页面是否加载了Action Listener。所以如果我把它放在页面的底部(脚本),它将首先加载页面,然后运行我的脚本代码。
我想把这个放在页面的底部,看看它将如何在页面的底部工作。我应该能够使用承载脚本的load操作取出操作侦听器。
代码:<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ch2Ex9 Rotation Transformation #3</title>
</head>
<body>
<div style="position: absolute; top: 50px; left: 50px;">
<canvas id="canvas" width="500" height="500">
Your browser does not support the HTML 5 Canvas.
</canvas>
</div>
<script type="text/javascript">
window.addEventListener('load', eventWindowLoaded, false);
function eventWindowLoaded() {
canvasApp();
}
function canvasApp(){
var theCanvas = document.getElementById('canvas');
if (!theCanvas || !theCanvas.getContext) {
return;
}
var context = theCanvas.getContext('2d');
if (!context) {
return;
}
drawScreen();
function drawScreen() {
//draw black square
context.fillStyle = "black";
context.fillRect(20,20 , 25, 25);
//now draw a red square
context.setTransform(1,0,0,1,0,0);
var angleInRadians =45 * Math.PI / 180;
var x=100;
var y=100;
var width=50;
var height=50;
context.translate(x+.5*width, y+.5*height);
context.rotate(angleInRadians);
context.fillStyle = "red";
context.fillRect(-.5*width,-.5*height , width, height);
}
}
</script>
</body>
</html>
代码(作品):
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ch2Ex9 Rotation Transformation #3</title>
<script type="text/javascript">
window.addEventListener('load', eventWindowLoaded, false);
function eventWindowLoaded() {
canvasApp();
}
function canvasApp(){
var theCanvas = document.getElementById('canvas');
if (!theCanvas || !theCanvas.getContext) {
return;
}
var context = theCanvas.getContext('2d');
if (!context) {
return;
}
function drawScreen() {
//draw black square
context.fillStyle = "black";
context.fillRect(20,20 , 25, 25);
//now draw a red square
context.setTransform(1,0,0,1,0,0);
var angleInRadians =45 * Math.PI / 180;
var x=100;
var y=100;
var width=50;
var height=50;
context.translate(x+.5*width, y+.5*height);
context.rotate(angleInRadians);
context.fillStyle = "red";
context.fillRect(-.5*width,-.5*height , width, height);
}
drawScreen();
}
</script>
</head>
<body>
<div style="position: absolute; top: 50px; left: 50px;">
<canvas id="canvas" width="500" height="500">
Your browser does not support the HTML 5 Canvas.
</canvas>
</div>
</body>
</html>
底部代码在底部示例中工作,这是因为它首先检查并加载页面,然后运行脚本。我应该能够将其移动到HTML页面的底部,并删除检查页面加载的代码,并在脚本语言的底部调用我的两个方法。
我不知道我是否在这里陈述了显而易见的事情,但是您的顶部代码将关闭</script>
标记留在了头部,并且它在它下面的脚本末尾丢失了。将其从头部移除并将其添加到页面的末尾,这两种方式对我来说都很好。我在浏览器控制台(F12)中看到了
相关文章:
- 如何将图表放在顶部和底部
- 滚动到顶部或底部后的简单效果
- 如何使一个元素从网页的顶部跳到底部再跳回到顶部
- 垂直与特定边距的顶部和底部对齐
- HTML导航在屏幕底部,并粘贴到顶部
- 粘贴Bootstrap在粘贴底部到达并滚动回顶部后闪烁
- 我们如何在fullPage.js中为不同的部分制作不同的填充顶部和底部值
- 当在堆栈底部添加ImageView时,我想删除RelativeLayout中的顶部ImageView,但它正在删除整个布
- 为什么javascript在页面底部或有时在页面顶部运行
- 使手风琴/可折叠中的 DIV 保持固定在页面的顶部和底部
- 如何使用 jQuery 检测元素的顶部靠近浏览器底部
- 如何在滚动到底部后在页脚上方设置“返回顶部”
- Div 在页眉到达其顶部时开始滚动,当其底部到达页脚时停止滚动
- 当在 Ul 上使用向上/向下箭头到达溢出自动项目的顶部/底部时显示隐藏的项目
- 检测(事件)尝试在使用JavaScript或AngularJS页面顶部/底部时向上/向下滚动
- 滚动到顶部/底部按钮错误
- Skrollr相对于顶部底部在chrome中较早着火
- 调整边缘-顶部/底部与屏幕高度成比例
- 恼人的不必要的溢出和页边空白顶部/底部没有'不起作用
- 当内部元素的滚动位置达到顶部/底部时,防止父元素滚动