2017-05-05 43 views
2

所有! 在这里,我想问一下jQuery .... 如何制作一个名为'.eg-dropdown'的元素.... 创建'.eg-dropdown'元素以适合'.btn-dropdown'。 ....动态位置下拉与jQuery

谢谢,对不起,我不太明显的英文.....

的Index.html

<div class="btn-dropdown">Publik</div> 

<ul class="eg-dropdown"> 
<li>Teman</li> 
<li>Pribadi</li> 
</ul> 

Index.css

.btn-dropdown { 
    display: inline-block; 
    width: 100px; 
    height: 20px; 
    position: absolute; 
    top: 100px; 
    left: 100px; 
    background: green; 
} 

ul { 
    margin: 0; 
    padding: 0; 
} 

Index.js

// DROPDOWN 
$(document).ready(function(){ 
var position_btn = $('.btn-dropdown').position(); 
$('.btn-dropdown').on('click', function(e){ 
    e.stopPropagation(); 
    console.log(position_btn); 
}); 

$('.eg-dropdown').css({ 
    'position' : 'absolute', 
    'top' : position_btn.top + $('.btn-dropdown').innerHeight(), 
    'left' : position_btn.left 
}); 
}); 

看到的jsfiddle https://jsfiddle.net/FIERMANDT/1kLvdys1/

回答

1

做它象下面这样: -

// DROPDOWN 
    $(document).ready(function(){ 
    var position_btn = $('.btn-dropdown').position(); 
    var widthBtn = $('.btn-dropdown').width(); 
    var widthEg = $('.btn-dropdown').height(); 
    $('.btn-dropdown').on('click', function(e){ 
     e.stopPropagation(); 
     console.log(widthEg); 
    }); 

    $('.eg-dropdown').css({ 
     'position' : 'absolute', 
     'top' : position_btn.top + $('.btn-dropdown').innerHeight(), 
     'left' : position_btn.left + widthBtn - widthEg 
    }); 
    }); 

工作例如: -

$(document).ready(function(){ 
 
    var position_btn = $('.btn-dropdown').position(); 
 
    var widthBtn = $('.btn-dropdown').width(); 
 
    var widthEg = $('.btn-dropdown').height(); 
 
    $('.btn-dropdown').on('click', function(e){ 
 
    e.stopPropagation(); 
 
    console.log(widthEg); 
 
    }); 
 

 
    $('.eg-dropdown').css({ 
 
    'position' : 'absolute', 
 
    'top' : position_btn.top + $('.btn-dropdown').innerHeight(), 
 
    'left' : position_btn.left + widthBtn - widthEg 
 
    }); 
 
});
.btn-dropdown { 
 
    display: inline-block; 
 
    width: 100px; 
 
    height: 20px; 
 
    position: absolute; 
 
    top: 100px; 
 
    left: 100px; 
 
    background: green; 
 
} 
 

 
ul { 
 
    margin: 0; 
 
    padding: 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="btn-dropdown">Publik</div> 
 

 
<ul class="eg-dropdown"> 
 
<li>Teman</li> 
 
<li>Pribadi</li> 
 
</ul>

+0

@Firmansyah什么问题,当你用我的代码,你得到什么? –

+0

@Firmansyah这是什么?你提供的链接,而不是告诉你在这些链接中想要什么? –

+0

THX,:D 我从你给的代码中得到了想法:D – Firmansyah

0

而是脚本可以使用简单的CSS这个

$(document).ready(function(){ 
 
    
 
    $('.btn-dropdown > a').on('click', function(e){ 
 
    e.stopPropagation(); 
 
    $(this).siblings('.eg-dropdown').toggle(); 
 
    }); 
 
});
.btn-dropdown { 
 
    display: inline-block; 
 
    width: 100px; 
 
    height: 20px; 
 
    position: relative; 
 
    background: green; 
 
} 
 

 
ul { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.eg-dropdown { 
 
    display: none; 
 
    position: absolute; 
 
    left: 0px; 
 
    top: 100%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="btn-dropdown"><a href="#" title="">Publik</a> 
 
    <ul class="eg-dropdown"> 
 
    <li>Teman</li> 
 
    <li>Pribadi</li> 
 
    </ul> 
 
</div>

0

             
  
$(document).ready(function(){ 
 
    
 
    $('.btn-dropdown').on('click', function(e){ 
 
    e.stopPropagation(); 
 
    $(this).children('.eg-dropdown').toggle('slow',function(){ 
 
    \t alert("fbhdh"); 
 
    
 
    }); 
 
    }); 
 
});
.btn-dropdown { 
 
     display: inline-block; 
 
     width: 100px; 
 
     height: 20px; 
 
     position: relative; 
 
     background: green; 
 
    } 
 

 
    ul { 
 
     margin: 0; 
 
     padding: 0; 
 
    } 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <div class="btn-dropdown">Publik 
 
     <ul class="eg-dropdown"> 
 
     <li>Teman</li> 
 
     <li>Pribadi</li> 
 
     </ul> 
 
    </div>