欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何避免因鼠標進入時顯示和隱藏滾動條而導致div閃爍

林國瑞2年前8瀏覽0評論

我在鼠標懸停時顯示一個滾動條,它在用戶界面上產生閃爍效果。有人能建議怎么避免嗎?代碼在這里

.parent {
        width:100%;
        max-height: 400px;
        overflow-y: hidden;
      }
     .parent:hover {
        overflow-y: scroll;
     }
     .table {
       width: 100%;
     }

<div class="parent">
   <table class="table">
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
    </table>
</div>

你有兩個選擇:

在右邊添加一個與滾動寬度相同的邊距(我相信默認是16px)。右邊距:16px。不過,我不太確定這種方法。

如果你不太在乎跨瀏覽器兼容性,只要使用overflow: overlay就可以了

編輯:IE已經死了,所以我們現在可以對#2滿意了

首先,你可以在滾動條上添加CSS寬度。之后,添加到。父{}寬度(從100%中減去滾動條寬度)??梢杂肅SS calc();為此函數。當你懸停父項時,將CSS寬度增加100%。 但是如果你想100%使用表格寬度,有一個人可以通過jQuery解決:https://stackoverflow.com/a/17380697/8660891 *抱歉我的英語不好:)

::-webkit-scrollbar {
    width: 15px;
    padding:0px;
}
::-webkit-scrollbar-thumb {
  min-height:50px;
  background-color:#888;
  height: 50px;
}
::-webkit-scrollbar-track {
    background: #e3e3e3;
}
.parent {
        width:calc(100% - 15px);
        max-height: 200px;
        overflow-y: hidden;
      }
     
     .parent:hover {
        overflow-y: scroll;
        width: 100%;
     }
     .table {
       width: 100%;
     }

<div class="parent">
   <table class="table">
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
      <tr><td>Key</td><td>Value</td></tr>
    </table>
</div>

如果這個表是可滾動的,那么只有當用戶懸停在它上面時才顯示它是可滾動的,這是不好的UI實踐(觸摸設備呢?).

解決這個問題和閃爍的最好方法是不要隱藏滾動條,就像這樣:

.parent {
        width:100%;
        max-height: 400px;
        overflow-y: scroll; // or overflow-y:auto; 
      }
     .table {
       width: 100%;
     }

用這個技巧來解決:

.parent {
  width: 100%;
  max-height: 200px;
  overflow: auto;
  visibility: hidden;
}

.parent:hover,
.parent:focus {
  visibility: visible;
}

.child {
  visibility: visible;
}

.table {
  width: 100%;
}

<div class="parent">
  <div class="child">
    <table class="table">
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
      <tr>
        <td>Key</td>
        <td>Value</td>
      </tr>
    </table>
  </div>
</div>

您可以使用scrollbar-gutter CSS屬性,而不是手動添加滾動條寬度:

scrollbar-gutter CSS屬性允許作者為滾動條保留空間,防止在內容增長時出現不必要的布局變化,同時避免在不需要滾動時出現不必要的視覺效果。