Javascript 把画布元素带到前面?
我正试图让多个光标在我的网页上飞来飞去。我让他们工作。我的问题是它们位于HTML5和javscriptJavascript 把画布元素带到前面?,javascript,jquery,css,html,canvas,Javascript,Jquery,Css,Html,Canvas,我正试图让多个光标在我的网页上飞来飞去。我让他们工作。我的问题是它们位于HTML5和javscript元素之上。当它们完成后,页面上的其他JQuery动画工作正常,但它将纯白覆盖大部分画布(这是一个大的、交互式的星域)。我怎样才能解决这个问题 如果需要的话,我可以提供一些代码,但是按照我构建代码的方式,它依赖于大量的外部脚本和样式表等,所以可能有点复杂 基本上,我需要在维护部分JQuery动画的同时,将画布放在前面 编辑:我想如果我展示一张显示问题的图片会更有帮助 你可以在底部看到星光场的剩余
元素之上。当它们完成后,页面上的其他JQuery动画工作正常,但它将纯白覆盖大部分画布(这是一个大的、交互式的星域)。我怎样才能解决这个问题
如果需要的话,我可以提供一些代码,但是按照我构建代码的方式,它依赖于大量的外部脚本和样式表等,所以可能有点复杂
基本上,我需要在维护部分JQuery动画的同时,将画布放在前面
编辑:我想如果我展示一张显示问题的图片会更有帮助
你可以在底部看到星光场的剩余部分。白色停止和星域开始的位置是光标动画的垂直约束
我想让星域显示在背景上,但在光标下。是否有可能将容器的背景(它是一个div
元素)设置为带有CSS的脚本,并使用该脚本设置starfield的动画?然后,我将能够最大化容器的大小,并为光标提供全屏显示
另外,不要担心黄色的短吻鳄;它是一个单独的JQuery动画,可以作为背景的一部分
EDIT2:我想我解决了我的问题,但我不知道如何解决它。要在容器中设置光标动画,光标的
位于容器的
中。游标的CSS设置为最高的z索引,但容器的CSS设置为最低的z索引。我怎样才能解决这个问题
同样,如果有必要,我可以提供脚本,但我相信这里最相关的脚本是为光标设置动画的脚本,因此我将在这里介绍:
$(document).ready(function() {
animateDiv($('.a'));
animateDiv($('.b'));
animateDiv($('.c'));
});
function makeNewPosition($container) {
// Get viewport dimensions (remove the dimension of the div)
var h = $container.height() - 50;
var w = $container.width() - 50;
var nh = Math.floor(Math.random() * h);
var nw = Math.floor(Math.random() * w);
return [nh, nw];
}
function animateDiv($target) {
var newq = makeNewPosition($target.parent());
var oldq = $target.offset();
var speed = calcSpeed([oldq.top, oldq.left], newq);
$target.animate({
top: newq[0],
left: newq[1]
}, speed, function() {
animateDiv($target);
});
};
function calcSpeed(prev, next) {
var x = Math.abs(prev[1] - next[1]);
var y = Math.abs(prev[0] - next[0]);
var greatest = x > y ? x : y;
var speedModifier = 0.25;
var speed = Math.ceil(greatest / speedModifier);
return speed;
}
编辑3:
它起作用了!它起作用了
我从容器中取出了其他
元素。我从另一个SO问题中复制了脚本,那里的示例使我相信
必须在容器中。但是,当我把它们放在外面时,一切都完全按照它应该的那样工作。哦,是的
谢谢!
evamvid使用CSS,您可以使用z-index属性更改元素的层,如下所示 CSS
canvas {
position: absolute;
z-index: 100;
}
请注意,因为你说你使用了很多样式表,你可能需要将z-index增加到999以上,因为很多插件会将其设置为999。此外,要使用z-index属性,元素必须设置position属性,您可以将CSS z-index属性添加到canvas元素。我可以使用z-index属性操纵其他CSS元素吗?@evamvid:您可以使用它操纵任何DOM元素。但是,必须满足某些条件才能使财产产生任何效力。请参阅。我使用的代码将画布设置为
。示例中给出的CSS是否必须变成#c{位置:绝对;z-index:100;}
?或者它会保持不变,不管画布id是什么?@Mitch我接受这个,因为它并没有完全解决我的问题,但它让我走上了通往它的道路。经过一点调试,一切都很顺利@米奇莱泽尔再次感谢你让我走上z索引的道路!