zoukankan      html  css  js  c++  java
  • 最大尺寸限制的容器,根据内容显示滑条的计算问题

    这一年因为工作需要,封装了不少js控件,有的简单,有的异常复杂,中间少不了大大小小各种问题和困难。

    其中一个问题就是标题问题,今天终于整明白了,现在贴出来,以备参考。

    首先,问题棘手的地方在于,计算是否显示滑条时,横向滑条占用了纵向高度,纵向滑条占用了横向高度,

    意味着计算纵向滑条,要纳入横向滑条的高度,计算横向滑条要纳入纵向滑条高度。

    这就麻烦了,貌似成了无限嵌套循环。。。。。

    我就是在这点上纠结了很久,不得不采用各种方法,试图规避循环计算。

    然而,在尝试了n次后,发现除了拆分容器为复合容器,否则无法解决这个问题后,终于又回到起点,不得不正视这个'循环'问题。

    经过反复思考和推演,结果发现,自己从一开始就走入了一个误区,认为无限循环这个想法是错误的!!!!

    循环是需要的,但只要循环一次,即计算两次就行了。。。。

    var hs = c.lineHeight * this.list.length,
        hh = c.isDropDownList ? 0 : c.headHeight,
        yr = (hs + hh) < (c.maxHeight - 2) ? 0 : 17,
        xr = (this.lineWidth + yr) < (c.maxWidth - 2) ? 0 : 17,
        yr = (hs + hh + xr) < (c.maxHeight - 2) ? 0 : 17,
        xr = (this.lineWidth + yr) < (c.maxWidth - 2) ? 0 : 17,
        w  = (this.lineWidth + yr) < (c.maxWidth - 2) ? (this.lineWidth + yr) : (c.maxWidth - yr - 2),
        h  = (hs + hh + xr) < (c.maxHeight - 2) ? (hs + xr) : (c.maxHeight - xr - 2);
    this.contentDom.css({  w, height: h });
    this.frameDom.css({  this.contentDom.outerWidth(), height: this.contentDom.outerHeight() + hh });
    

      现在把关键代码贴出来,以资记忆,不枉我死掉的n多脑细胞。。。。。

  • 相关阅读:
    java poi 操作
    java map 根据 map的value值进行排序
    Windows navcat 连接虚拟机mysql
    如何阻止Windows广告窗口弹出
    python gitlab 学习笔记
    Java的家庭记账本程序(D)
    《程序员修炼之道:从小工到专家》的阅读笔记(二)
    Java的家庭记账本程序(C)
    Java的家庭记账本程序(B)
    Java的家庭记账本程序(A)
  • 原文地址:https://www.cnblogs.com/foren/p/6136582.html
Copyright © 2011-2022 走看看