Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 溢出检查不工作_Javascript_Html_Css - Fatal编程技术网

Javascript 溢出检查不工作

Javascript 溢出检查不工作,javascript,html,css,Javascript,Html,Css,在这种情况下,我希望checkOverflow函数返回true HTML: 知道函数的console.log为什么在这里返回true吗?问题是#txt向右浮动,所以向左溢出 但是使用默认的从左到右的方向,不可能向左滚动 但是,如果使用从右向左的方向,则可以 #z{方向:rtl;} 功能检查溢出(el){ var curOverflow=el.style.overflow; 如果(!curOverflow | | curOverflow==‘可见’) el.style.overflow='hi

在这种情况下,我希望
checkOverflow
函数返回
true

HTML:

知道函数的
console.log
为什么在这里返回
true
吗?

问题是
#txt
向右浮动,所以向左溢出

但是使用默认的从左到右的方向,不可能向左滚动

但是,如果使用从右向左的方向,则可以

#z{方向:rtl;}
功能检查溢出(el){
var curOverflow=el.style.overflow;
如果(!curOverflow | | curOverflow==‘可见’)
el.style.overflow='hidden';
var isoverflow=el.clientWidth
div#z{
位置:相对位置;
背景:红色;
宽度:50px;
高度:50px;
溢出:自动;
方向:rtl;
}
div#txt{
背景:浅蓝色;
浮动:对;
}

345345345345345345345345345345345
这是我的解决方案

问题是它不是内联元素,如果您更改为span标记,它就会工作

我也改变了这个

el.offsetWidth //instead of clientWidth

scrollHeight
scrollWidth
对应于实际的
clientHeight
clientwidth
+隐藏的高度或宽度。由于
div#txt
向右浮动,因此不会溢出


您还应该查看和。

这只“起作用”,因为选择器
div#txt
不再适用,然后它不再向右浮动。如果再次放置浮动,它将再次起作用,因为标记更改为。检查一下!看小提琴:。所以在这种情况下你错了。对于内联元素,这非常有效任何答案都能回答您的问题?
console.log(checkOverflow(document.getElementById('z')));

function checkOverflow(el) {

  var curOverflow = el.style.overflow;

  if (!curOverflow || curOverflow === 'visible')
    el.style.overflow = 'hidden';

  var isOverflowing = el.clientWidth < el.scrollWidth || el.clientHeight < el.scrollHeight;

  el.style.overflow = curOverflow;

  return isOverflowing;
};
div#z {
  position: relative;
  background: red;
  width: 50px;
  height: 50px;
  overflow: auto;
}

div#txt {
  background: lightblue;
  float: right;
}
el.offsetWidth //instead of clientWidth