Javascript 摧毁 z-index
Javascript destroying z-index
我创造了 jsfiddle 硬币 parent div 和几个孩子 div。
我已经正确添加了 z-index,但是一旦我移动 object,z-index 就消失了。
JS 可能有问题,因为我真的不知道如何在其中编程。
有人可以帮忙吗?
这是js:
var img = $('#pointer');
var offset = img.offset();
var mouseDown = false;
function mouse(evt) {
if(mouseDown ==true){
var center_x = (offset.left) + (img.width() / 2);
var center_y = (offset.top) + (img.height() / 2);
var mouse_x = evt.pageX;
var mouse_y = evt.pageY;
var radians = Math.atan2(mouse_x - center_x, mouse_y - center_y);
var degree = (radians * (180 / Math.PI) * -1) + 90;
img.css('-moz-transform', 'rotate(' + degree + 'deg)');
img.css('-webkit-transform', 'rotate(' + degree + 'deg)');
img.css('-o-transform', 'rotate(' + degree + 'deg)');
img.css('-ms-transform', 'rotate(' + degree + 'deg)');
}
}
img.mousedown(function (e) {
mouseDown=true;
$(document).mousemove(mouse);
});
$(document).mouseup(function (e) {
mouseDown = false;
})
var resizeHandle = document.getElementById('marker');
var pointer = document.getElementById('pointer');
resizeHandle.addEventListener('mousedown', initialiseResize, false);
function initialiseResize(e) {
window.addEventListener('mousemove', startResizing, false);
window.addEventListener('mouseup', stopResizing, false);
}
function startResizing(e) {
/*pointer.style.width = (e.clientX - pointer.offsetLeft) + 'px';*/
pointer.style.height = (e.clientY - pointer.offsetTop) + 'px';
}
function stopResizing(e) {
window.removeEventListener('mousemove', startResizing, false);
window.removeEventListener('mouseup', stopResizing, false);
}
浏览器呈现带有 transform
的元素与常规元素略有不同。在这种情况下,负数 z-index 似乎被忽略了,因为它的父级有一个转换。如果您稍微重写 html/css 以使所有 z-index 值为正,它就可以工作。
在这种情况下,我已将您 #pointer
的红色轮廓和白色背景移动到 #pointer::before
psuedo-element,并更改了 #koule2
的 [=26] =] 到 0.
如果您愿意,也可以将 ::before
替换为实际元素。
#pointer {
position:absolute;
height:150px;
top:82px;
width:50px;
left:100px;
}
#pointer::before {
content: '';
position: absolute;
height:100%;
top:0;
width:100%;
border-color: red;
border-style: solid;
border-width: 2px 2px 0 2px;
left:-2px;
background-color: white;
z-index: 10;
}
我创造了 jsfiddle 硬币 parent div 和几个孩子 div。 我已经正确添加了 z-index,但是一旦我移动 object,z-index 就消失了。 JS 可能有问题,因为我真的不知道如何在其中编程。 有人可以帮忙吗?
这是js:
var img = $('#pointer');
var offset = img.offset();
var mouseDown = false;
function mouse(evt) {
if(mouseDown ==true){
var center_x = (offset.left) + (img.width() / 2);
var center_y = (offset.top) + (img.height() / 2);
var mouse_x = evt.pageX;
var mouse_y = evt.pageY;
var radians = Math.atan2(mouse_x - center_x, mouse_y - center_y);
var degree = (radians * (180 / Math.PI) * -1) + 90;
img.css('-moz-transform', 'rotate(' + degree + 'deg)');
img.css('-webkit-transform', 'rotate(' + degree + 'deg)');
img.css('-o-transform', 'rotate(' + degree + 'deg)');
img.css('-ms-transform', 'rotate(' + degree + 'deg)');
}
}
img.mousedown(function (e) {
mouseDown=true;
$(document).mousemove(mouse);
});
$(document).mouseup(function (e) {
mouseDown = false;
})
var resizeHandle = document.getElementById('marker');
var pointer = document.getElementById('pointer');
resizeHandle.addEventListener('mousedown', initialiseResize, false);
function initialiseResize(e) {
window.addEventListener('mousemove', startResizing, false);
window.addEventListener('mouseup', stopResizing, false);
}
function startResizing(e) {
/*pointer.style.width = (e.clientX - pointer.offsetLeft) + 'px';*/
pointer.style.height = (e.clientY - pointer.offsetTop) + 'px';
}
function stopResizing(e) {
window.removeEventListener('mousemove', startResizing, false);
window.removeEventListener('mouseup', stopResizing, false);
}
浏览器呈现带有 transform
的元素与常规元素略有不同。在这种情况下,负数 z-index 似乎被忽略了,因为它的父级有一个转换。如果您稍微重写 html/css 以使所有 z-index 值为正,它就可以工作。
在这种情况下,我已将您 #pointer
的红色轮廓和白色背景移动到 #pointer::before
psuedo-element,并更改了 #koule2
的 [=26] =] 到 0.
如果您愿意,也可以将 ::before
替换为实际元素。
#pointer {
position:absolute;
height:150px;
top:82px;
width:50px;
left:100px;
}
#pointer::before {
content: '';
position: absolute;
height:100%;
top:0;
width:100%;
border-color: red;
border-style: solid;
border-width: 2px 2px 0 2px;
left:-2px;
background-color: white;
z-index: 10;
}