按钮悬停效果在不同的 Z 索引上
Button Hover effects on different Z-Indexes
这是我的问题:几周前,我开始使用JavaScript和HTML进行游戏,并决定在上周继续重新格式化代码并使其更加面向对象(这实际上与我的问题没有任何关系,但在将事情放在上下文中时它的价值),除了使其更加面向对象之外,我决定将我的游戏设计分解为不同的画布, 我的理解是,您可以将画布相互叠加(我已经阅读了有关将多个画布用于不同作业(包括图像缓冲)的各种建议)为了提高性能,画布可以通过应用 z-index:; 在 CSS 中,此时我有以下 CSS 代码,我正在使用它来管理网站的设计和分层画布。
#canvas{
position: absolute;
top: 10px;
left: 100px;
z-index: 1;
background: transparent;
}
#bgCanvas{
position: absolute;
top: 10px;
left: 100px;
z-index: 0;
background: transparent;
}
#button{
position: absolute;
top: 430px;
left: 305px;
width: 116px;
border-style: solid;
border-color: red;
z-index:2;
background-color: #FFF;
}
第一个画布位于索引 1,据我所知,这是在索引 0 的顶部分层的,第一个画布绘制玩家和敌人,第二个画布 bgCanvas 专用于背景,这是在 z-index:0这意味着它应该位于玩家的下方。然后我有第三个画布,它在 z-index:2,这应该提供以下层次结构2 - 游戏按钮1 - 介绍图像,玩家和敌人图像(更新并显示在此图层上)0 - 背景
现在进入实际问题:在以前的JavaScript文件中(如前所述,我正在重构该文件中的代码),我有代码可以启用悬停在按钮上的效果上,例如以下代码,顺便说一下,它位于一个名为update()的函数中:
document.getElementById('button').style.left = canvas.width /2;
document.getElementById('button').css('z-index',1000);
document.getElementById('button').onmouseover = function(){
button.style.color = "red";
button.style.cursor= "pointer";
};
document.getElementById('button').onmouseout = function(){
button.style.color = "black";
};
document.getElementById('button1').onmouseover = function(){
button1.style.color = "red";
button1.style.cursor= "pointer";
};
document.getElementById('button1').onmouseout = function(){
button1.style.color = "black";
};
document.getElementById('button').onclick = function(){
button.style.visibility = "hidden";
button1.style.visibility = "hidden";
gameStart = true;
};
但是,与以前的JavaScript文件不同,这个新文件使用不同的图层来管理正在绘制的内容,因此以前有效的悬停和鼠标效果不起作用。但这里是踢球者,当我将按钮的 z 指数从 2 调整为 1 时,悬停和鼠标效果会起作用。所以我的问题是,我可以在不同的 z 指数上应用悬停效果吗?或者我应该减少画布等的数量,如果您需要更多信息,我可以尝试提供并提前表示感谢。
这个问题已经解决了,哈哈。问题是这样的:函数 update() 保存 onclick、onmouseout 等。当你在draw()中绘制介绍屏幕并使用if语句if(gameStarted===false){时,你需要在if和else语句中包含update()函数,这是修复^^的代码
function draw(){
if(gameStarted === false){
startS.draw();
update();
}
else{
ctx1.drawImage(bgImage,0,0);
update();
ctx.clearRect(0,0,canvas.width, canvas.height);
p.draw();
h.draw();
requestId = window.requestAnimationFrame(draw);
}
};
- 名称输入的索引
- 在jQuery中获取表的行索引
- 测试索引值是否等于某个数字的倍数
- 循环遍历数组中的特定索引
- 按照选项卡索引的顺序循环一个jQuery选择
- 当鼠标悬停在文本中的单词上时显示警报
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 手风琴可点击并悬停
- 在JavaScript中通过索引从对象数组中获取值
- 悬停功能触发器
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 如何在鼠标悬停事件时添加索引
- 如何在鼠标悬停时获取选定的索引
- 按钮悬停效果在不同的 Z 索引上
- 改变z索引悬停边框
- z索引无法在jquery中使用悬停宽度效果
- 悬停时添加/删除z索引
- 如何在鼠标悬停时获取元素的索引值
- 需要索引项目数在数组上悬停