当前位置: 首页 > 知识库问答 >
问题:

带旋转箭头的下拉内容(CSS/JS)

裴焱
2023-03-14

我被我的下拉内容卡住了。试图旋转单击按钮标题旁边的箭头。第一个内容是默认打开的,这样arrow应该默认在那里转动。

>

  • 当前代码默认情况下不转动内容1箭头,并且

    点击旋转所有箭头,因为我不知道如何在js中正确引用当前图标。

    任何建议都是非常欢迎的。

      let dropdownModule = { 
       init: function(){
        this.cacheDom();
        this.bindEvents();
       },
       cacheDom: function(){
        this.$el = $('.dropdown-container');
        this.$dropdownBox = this.$el.find('.dropdown-box');
        this.$dropdownContent = this.$el.find('.dropdown-content');
        
       },
       bindEvents:function(){
        this.$dropdownBox.on('click', function(){
          
          let currentContent = $(this).next('.dropdown-content'); 
          currentContent.slideToggle(600);
          
          $('.dropdown-content').not(currentContent).slideUp(600);
          $('.fa-sort-down').toggleClass('r180');
    
        })
        }} 
        dropdownModule.init();
        
       
        
        
    
            
           <div class="dropdown-container">
           <div class="dropdown-box">Button Title 1<i class="fas fa-sort-down"></i>
           </div>
           <div style="display: block;" class="dropdown-content">
           Content 1
           </div>
           </div>
        
           <div class="dropdown-container">
           <div class="dropdown-box">Button Title 2<i class="fas fa-sort-down"></i>
           </div>
           <div class="dropdown-content">
           Content 2
           </div>
           </div>
            
            
    
         .fa-sort-down {
           transition: all 0.5s ease;
         }
         .r180 {
           transform: rotate(180deg);
      }
    
  • 共有1个答案

    蒋原
    2023-03-14

    基本上,当您点击下拉列表时,可能是被点击的标记,您需要首先找到目标。

    将您的js更改为:

    let dropdownModule = { 
       init: function(){
        this.cacheDom();
        this.bindEvents();
       },
       cacheDom: function(){
        this.$el = $('.dropdown-container');
        this.$dropdownBox = this.$el.find('.dropdown-box');
        this.$dropdownContent = this.$el.find('.dropdown-content');
        
       },
       bindEvents:function(){
        this.$dropdownBox.on('click', function(e){
          let target = $(e.target);
          if(!$(e.target).hasClass("dropdown-box")){
            target = $(e.target).parent();
          }
          
          let currentContent = target.next('.dropdown-content'); 
          currentContent.slideToggle(600);
          
          $('.dropdown-content').not(currentContent).slideUp(600);
          target.find('.fa-sort-down').toggleClass('r180');
    
        })
        }} 
        dropdownModule.init();
    
     类似资料:
    • 描述 (Description) 您可以使用.dropdown类将下拉箭头添加到按钮。 它不会自动为您的按钮添加下拉功能。 要实现这一点,您必须附加Dropdown插件 。 例子 (Example) 以下示例演示如何向Foundation中的dropdown arrows to buttons添加dropdown arrows to buttons 。 <html> <head>

    • Chrome显然为引用的文本输入添加了一个下拉箭头。它出现在Chrome34(金丝雀)中,但不在当前的稳定构建(Chrome31)中。 它仅在文本字段聚焦(请参见更新)并应用于输入类型和时才显示。 就本机浏览器实现而言,情况可能更糟,但正如您在图中所见,它与我的设计规范相冲突。 箭头也出现在字段悬停时(不只是聚焦),不幸的是,当按钮本身悬停时,箭头也有自己的背景色:

    • 见下图: 左边是我目前拥有的,右边是我试图实现的,或者至少在某个地方有一个向下箭头。关于如何创建这个背景有什么想法吗?

    • 本文向大家介绍JavaScript实现带箭头标识的多级下拉菜单效果,包括了JavaScript实现带箭头标识的多级下拉菜单效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript实现带箭头标识的多级下拉菜单效果。分享给大家供大家参考。具体如下: 这是一个支持多级显示的JS菜单,鼠标移向带有小三角的菜单项,可下拉出二级子菜单项,在该主菜单的上方会显示标记,指引当前的位置,本菜