Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置“;“自动”;“宽度”到“计算值”的值为0,但“高度”有效_Javascript_Css_Css Transitions - Fatal编程技术网

Javascript 设置“;“自动”;“宽度”到“计算值”的值为0,但“高度”有效

Javascript 设置“;“自动”;“宽度”到“计算值”的值为0,但“高度”有效,javascript,css,css-transitions,Javascript,Css,Css Transitions,问题在于上面链接的网站 这是代码中无法按预期工作的部分。请看评论。在它们上面是有问题的线条 我用注释指出的代码打算用当前的像素值替换两个元素的高度/宽度值,即“auto”,因此我可以稍后执行CSS3转换-正如您可能知道的,转换属性无法使用“auto”值 基本上,我用以下方法恢复计算值: someVariable=window.getComputedStyle(<"my element">).getPropertyValue('<"width or height">');

问题在于上面链接的网站

这是代码中无法按预期工作的部分。请看评论。在它们上面是有问题的线条

我用注释指出的代码打算用当前的像素值替换两个元素的高度/宽度值,即“auto”,因此我可以稍后执行CSS3转换-正如您可能知道的,转换属性无法使用“auto”值

基本上,我用以下方法恢复计算值:

someVariable=window.getComputedStyle(<"my element">).getPropertyValue('<"width or height">');
<"my element">.style.<"width or height">=someVariable;
someVariable=window.getComputedStyle().getPropertyValue(“”);
然后我将其应用于元素,如下所示:

someVariable=window.getComputedStyle(<"my element">).getPropertyValue('<"width or height">');
<"my element">.style.<"width or height">=someVariable;
.style.=someVariable;
这个高度非常合适。但是,宽度使宽度为0。。。这确实使CSS3转换工作,但也将剪刀向左移动。通过在页面上打开一个部分并再次关闭它,您可以看到这是一个怎样的问题。(通过单击标题可以打开或关闭分区。)

请注意,获取计算值并不是问题所在。正如您在消息开头的pastebin链接中所看到的,使用
console.log()
输出它们会给出预期的值

这是我正在开发的网站,不是为了这个而归档的 网站。因此,在回答被接受后访问它将 (希望如此!)引导您进入一个没有问题的页面。或者找不到404 错误,具体取决于您尝试访问它的时间


编辑

好吧,既然问题不是很清楚,我就创建了两个小提琴,尽可能地将问题隔离开来。还有一张解释图

1--有内容。将允许您查看如何根据存储的值正确设置内容的高度。(是的,如果你重新打开这个部分,内容就不会再出现。不要想研究这个问题,因为它在这里不相关。当我最小化代码量时,一定删除了一些重要的行。是的,它很难看,因为我没有费心研究比例或任何东西。)

2--没有内容。这是一个,所以你只看到什么是直接相关的问题在手上。是的,它甚至更丑陋,因为我也最小化了CSS的数量。过渡被大大延长,因此您可以很好地看到发生了什么

还有解释图。(). 也可以使用Ctrl-+进行放大。

您应该使用
最大宽度:0
闭合剪刀,并使用
最大宽度:1000px用于打开状态。通过这样做,您可以覆盖
width:auto
,这是转换中的问题。

问题恰恰是我不希望关闭状态的宽度为零。我想要一个“自动”的宽度,由孩子的宽度指示,大约是0.4em。此外,问题不在于如何使转换工作,而在于如何正确地将“我的宽度”设置为其“自动”值,而是明确地使用像素。就像我成功地控制了高度一样,一点也不。让我给你画一幅画。它应该在半小时内准备好。你的效果完全可以用CSS和选择器来编写。您的代码太复杂,无法进行如此简单的转换。您使用的是img标记,这在语义上非常糟糕。造成复杂性的原因之一是不使用IMG标记,因为我可能会因此失去分数。2.从你的小提琴上看,剪刀打开时会放大屏幕。3.剪刀没有正确的边距;1.把它换成别的东西并设置一个背景不是什么大不了的事:剪刀;2.您只需适当设置一些边距,并将主体放在容器中;3.你也可以很容易地修复这个空白。你可以隔离代码(问题)并创建一个fiddle[jsFiddle](www.jsFiddle.com)或其他东西吗。如果你这样做,我相信会有更多的人能够提供帮助。我确实在Pastebin链接中非常清楚地隔离了代码(只有几行代码,所有这些都是为了让你理解代码的目的,所有重要的行都会通过注释显示出来)。但如果还不够的话,等我有更多时间的时候,我会按你的要求做一把小提琴。@drinchev我在主要问题中添加了很多内容。请告诉我你现在理解了这个问题。你的问题不会出现在谷歌浏览器上