首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用鼠标点击或鼠标悬停显示和隐藏内容

用鼠标点击或鼠标悬停显示和隐藏内容
EN

Stack Overflow用户
提问于 2015-07-10 04:52:09
回答 2查看 1.8K关注 0票数 3

我有一个按钮,并将其放置在浏览器的顶部。因此,我需要显示一个下拉列表时,鼠标单击或鼠标对这个定位按钮。

代码语言:javascript
复制
  <div class="translator">
    <div class="translate-btn">Translator</div>
    <div class="translate-dropdown">
      <select>
        <option>Translate-1</option>
        <option>Translate-2</option>
        <option>Translate-3</option>
      </select>
    </div>
  </div>

CSS

代码语言:javascript
复制
.translator {
    position: absolute;
    top: 0;
    right: 10%;
    z-index: 9999;
}

.translate-btn {
  background-color: rgba(136, 121, 91, 0.8);
  border-radius: 0 0 5px 5px;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: bold;
  padding: 4px 15px 5px;
  text-align: center;
  text-transform: uppercase;
}

使用这个HTML,我需要显示“翻译-下拉”DIV当用户点击或鼠标对“翻译-btn”。

有人能告诉我是否可以使用纯CSS,还是需要使用jquery呢?

希望有人能帮我。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-10 04:58:11

只使用CSS:

代码语言:javascript
复制
.translate-dropdown {
    display: none;
}

.translator:hover .translate-dropdown {
    display: block;
}

完整的工作示例:

代码语言:javascript
复制
.translator {
  position: absolute;
  top: 0;
  right: 10%;
  z-index: 9999;
}

.translate-btn {
  background-color: rgba(136, 121, 91, 0.8);
  border-radius: 0 0 5px 5px;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: bold;
  padding: 4px 15px 5px;
  text-align: center;
  text-transform: uppercase;  
}

.translate-dropdown {
    display: none;
}

.translator:hover .translate-dropdown {
    display: block;
}
代码语言:javascript
复制
  <div class="translator">
    <div class="translate-btn">Translator</div>
    <div class="translate-dropdown">
      <select>
        <option>Translate-1</option>
        <option>Translate-2</option>
        <option>Translate-3</option>
      </select>
    </div>
  </div>

票数 5
EN

Stack Overflow用户

发布于 2015-07-10 04:59:30

纯CSS对于这类任务具有局限性。下面是使用jQuery的javascript方法(因为我不是CSS开发人员):

代码语言:javascript
复制
$(document).ready(function() {
        var $target = $('.translate-dropdown');
        $('div.translate-btn').on({ 
                    mouseenter: function(e){
                        $target.css('visibility', 'hidden');     
                    },
                    mouseleave:function(e){
                        $target.css('visibility', 'visible');  
                    },
                   click:function(e){

                   $target.css('visibility', 'visible');
// here you can toggle a class name to track the state of the div and based on the state hide or show it. 

                    }
                });
        }

您可以使用jQuery、.hide().show(),而不是.css(),但是这些设置将设置CSS display: none,而这并不总是隐藏元素的目标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31332691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档