Javascript chrome div随机进入高度0px

Javascript chrome div随机进入高度0px,javascript,jquery,css,google-chrome,Javascript,Jquery,Css,Google Chrome,我在chrome中遇到了一个奇怪的bug(chrome中也有),但在firefox中没有。 我正在编写一些代码,以便能够调整一些div的大小 有时在chrome中,当我调整大小时,同级div显示为0px高度。例如,在此示例中,如果拖动红色和蓝色div之间的调整大小线,则绿色div将消失 为了检查div,我在mousemove处理程序的代码上放置了一个断点,但是css与正确显示的div完全相同 要尝试此操作,请在此处放置断点: $("*").mouseup(function(event) {

我在chrome中遇到了一个奇怪的bug(chrome中也有),但在firefox中没有。 我正在编写一些代码,以便能够调整一些div的大小

有时在chrome中,当我调整大小时,同级div显示为0px高度。例如,在此示例中,如果拖动红色和蓝色div之间的调整大小线,则绿色div将消失

为了检查div,我在mousemove处理程序的代码上放置了一个断点,但是css与正确显示的div完全相同

要尝试此操作,请在此处放置断点:

$("*").mouseup(function(event) {
    if (downV) {
        downV = false;

这是与webkit相关的bug还是我做错了什么?我该如何解决这个问题?

问题似乎是,无论出于何种原因,它都不喜欢移动时的混合单位(百分比和像素值)。签出,我已将
$(“.area”).mousemove(函数(事件)
中的代码更改为使用百分比值,并注释掉
$(“*”).mouseup(函数(事件)
方法中的转换px=>%

鼠标: 鼠标移动:
$(“.area”).mousemove(函数(事件){
如果(向下){
var y=event.pageY-$(this).offset().top-upperSize;
if(y<0){
y=0;
}
如果(y>sizePart){
y=尺寸部件;
}
upchild.css(“高度”,“数学楼层(y)+1)*100/sizeTot+“%”;
downchild.css(“高度”,数学地板(sizePart-y)*100/sizeTot+“%”;
event.preventDefault();
}否则如果(唐恩){
var x=event.pageX-$(this).offset().left-upperSize;
if(x<0){
x=0;
}
如果(x>sizePart){
x=尺寸部件;
}
css(“宽度”,数学层(x)+1);
css(“宽度”,数学地板(sizePart-x));
event.preventDefault();
}
});

为什么要将高度设为0px?我没有看到任何动画,尽管我浏览了一下,为什么不直接使用.hide()并隐藏div,而不是将其设为0px的高度。此外,您的小提琴的js无效,因为您在循环中创建了一个函数,所以它不会运行(点击顶部的JSHint按钮,它会显示代码中的错误位置)(
parent.prevAll().each(function(){upperSize+=$(this.height();});
)和一个宽度为代码工作的代码指出了一个问题。按钮转到0px是针对另一个与chrome相关的错误,但来自webkit()我已经编辑删除了它现在我理解了这个问题,这是一个奇怪的问题。如果你看看这个:这可能会对你有帮助,似乎回答的人也发生了同样的事情。他修复了它。看起来你的绿色框留在那里,是你的蓝色和红色框跳到了容器的左侧。你可以清楚地看到检查员认为绿色框的高度为0px,css没有改变:/加之它并不总是这样做,如果您将黄色手柄移动到顶部或机器人,它可能会“解决”问题。
$("*").mouseup(function(event) {
    if (downV) {
        downV = false;
        $("body").css("cursor","initial");
        //upchild.css("height", upchild.height()*100/sizeTot+"%");
        //downchild.css("height", downchild.height()*100/sizeTot+"%");
        event.stopPropagation();
    } else if (downH) {
        downH = false;
        $("body").css("cursor","initial");
        upchild.css("width", upchild.width()*100/sizeTot+"%");
        downchild.css("width", downchild.width()*100/sizeTot+"%");
        event.stopPropagation();
    }
});
$(".area").mousemove(function(event) {
    if (downV){
        var y = event.pageY - $(this).offset().top - upperSize;
        if (y < 0) {
            y = 0;
        }
        if (y > sizePart) {
            y = sizePart;
        }
        upchild.css("height", (Math.floor(y)+1)*100/sizeTot+"%");
        downchild.css("height", Math.floor(sizePart-y)*100/sizeTot+"%");
        event.preventDefault();
    } else if (downH) {
        var x = event.pageX - $(this).offset().left - upperSize;
        if (x < 0) {
            x = 0;
        }
        if (x > sizePart) {
            x = sizePart;
        }
        upchild.css("width", Math.floor(x)+1);
        downchild.css("width", Math.floor(sizePart-x));
        event.preventDefault();
    }
});