首頁  >  文章  >  web前端  >  如何使 HTML 選擇框選項出現在懸停時?

如何使 HTML 選擇框選項出現在懸停時?

Barbara Streisand
Barbara Streisand原創
2024-10-31 00:26:30964瀏覽

How to Make HTML Select Box Options Appear on Hover?

如何在懸停時顯示HTML 選擇框選項

您提出的挑戰涉及創建一個選擇框,其中選項隱藏,直到用戶懸停在它上面。以下是詳細的解決方案:

實作:

提供的程式碼利用 jQuery 的懸停()事件來切換清單元素的可見性。未選擇的 CSS 類別用於設定目前未顯示的清單項目的樣式。

HTML 標籤:

<code class="html"><select name="size">
  <option value="small">Small</option>
  <option value="medium">Medium</option>
  <option value="large">Large</option>
</select></code>

CSS 樣式:

<code class="css">select {
  opacity: 0.5;
}
ul {
  width: 8em;
  line-height: 2em;
}
li {
  cursor: pointer;
  display: list-item;
  width: 100%;
  height: 2em;
  border: 1px solid #ccc;
  border-top-width: 0;
  text-indent: 1em;
  background-color: #f90;
}
li:first-child {
  border-top-width: 1px;
}
li.unselected {
  display: none;
  background-color: #fff;
}
ul#selectUl:hover li.unselected {
  background-color: #fff;
}
ul#selectUl:hover li,
ul#selectUl:hover li.unselected {
  display: list-item;
}
ul#selectUl:hover li {
  background-color: #fc0;
}
ul#selectUl li:hover,
ul#selectUl li.unselected:hover {
  background-color: #f90;
}</code>

JavaScript 事件處理:

<code class="js">$('#selectUl li:not(":first")').addClass('unselected');

$('#selectUl').hover(
  function () {
    $(this).find('li').click(function () {
      $('.unselected').removeClass('unselected');
      $(this).siblings('li').addClass('unselected');
      var index = $(this).index();
      $('select option:selected').removeAttr('selected');
      $('select[name=size]')
        .find('option:eq(' + index + ')')
        .attr('selected', true);
    });
  },
  function () {}
);</code>

  1. 最初,透過新增未選取的類別來隱藏ul 中的所有選項元素。
  2. 當使用者將滑鼠懸停在 ul 上時,會觸發 href() 事件,導致除第一個(即選定的選項顯示)之外的所有清單項目變得可見。
  3. 按一下任何清單項目都會切換未選取的清單項目類,隱藏所有其他選項並顯示選取的選項。
  4. index() 方法用於決定按一下選項的索引,然後用於更新

以上是如何使 HTML 選擇框選項出現在懸停時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn