javascript - 防止 ui-ressized 句柄自动触发溢出滚动条

标签 javascript jquery css jquery-ui

嗨,我使用 jqueryui/ressized <div id="blue">包含子元素 <div id="red"> 的元素带有一些内部 html 文本内容。蓝色的是$(".resizable").resizable();我希望如果我调整蓝色的大小小于红色的内容,就会出现滚动条。

问题是因为类 .ui-resizable-s .ui-resizable-e滚动条始终可见。

看看这个 JSFiddle https://jsfiddle.net/662tyqv8/4/

如果我现在隐藏 JSFiddle 中的水平和垂直 handle ,它就可以工作(溢出滚动条仅在需要时才出现。

如果我查看 DOM 树,我就会明白为什么滚动条始终可见:

<div id="blue" class="resizable ui-resizable">
    <div id="red">C<br>O<br>N<br>T<br>E<br>X<br>T</div>

    <div class="ui-resizable-handle ui-resizable-e" style="z-index: 1000;"></div>
    <div class="ui-resizable-handle ui-resizable-s" style="z-index: 1000;"></div>
    <div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 1000;"></div>
</div>

This picture 显示水平 handle 位于蓝色 <div> 区域之外因此它会自动添加滚动条

最佳答案

这是在 resize 中完成的,您可以在其中比较两个元素的高度:

https://jsfiddle.net/Twisty/mf52vhe5/

HTML

<div id="blue" class=" resizable">
  <div id="red">
    C
    <br>O
    <br>N
    <br>T
    <br>E
    <br>X
    <br>T
  </div>
</div>

CSS

#blue {
  width: 200px;
  height: 200px;
  background: blue;
  outline: 1px solid black;
  position: absolute !important;
  overflow-x: hidden;
  overflow-y: hidden;
}

#red {
  background: red;
}

jQuery

 $(function() {
   $(".resizable").resizable({
     resize: function(e, ui) {
       var blue = $("#blue");
       var red = $("#red");
       if (blue.height() < red.height()) {
         blue.css("overflow-y", "auto");
       } else {
         blue.css("overflow-y", "hidden");
       }
     }
   });
 });

您还可以通过添加/删除类或切换类来执行此操作。

.scrolling {
  overflow-y: auto;
}

然后在比较时这样做:

if (blue.height() < red.height()) {
    blue.addClass("scrolling");
} else {
    blue.removeClass("scrolling");
}

关于javascript - 防止 ui-ressized 句柄自动触发溢出滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38641722/

相关文章:

javascript - jQuery 更改用户的 img

css - 将内容放在表格单元格的对 Angular

css - (p span) 和 (p > span) 有什么区别?

javascript - 光标与文本不对齐

javascript - 正则表达式全局替换不替换第一次出现的情况

javascript - 用另一个javascript取消onClick javascript函数

javascript - 使用 javascript 更改更复杂的 css

javascript - Rangy:恢复多个字符范围以突出显示时,我可以提高性能吗?

javascript - jQuery DataTables 在标题单击时检查复选框

jquery - 创建垂直多级菜单