drop down plugin
by Oliver Kelso
HTML
<div>
<div id="dd" class="wrapper-dropdown-2">More actions
<ul class="dropdown">
<li><a href="#">Twitter</a>
</li>
<li><a href="#">Github</a>
</li>
<li><a href="#">Facebook</a>
</li>
</ul>
</div>
</div>
<br /><br /><br /><br /><br />
<div>
<div id="dd" class="wrapper-dropdown-2">More actions
<ul class="dropdown">
<li><a href="#">Twitter</a>
</li>
<li><a href="#">Github</a>
</li>
</ul>
</div>
</div>
CSS
.dropdown{position:absolute;display:block;list-style:none;}
.active{color:red;}
.wrapper-dropdown-2 {
/* Size and position */
position: relative;
/* Enable absolute positionning for children and pseudo elements */
width: 100px;
padding: 5px 5px 5px 5px;
/* Styles */
background: #fff;
cursor: pointer;
outline: none;
}
.wrapper-dropdown-2:after {
content:"";
width: 0;
height: 0;
position: absolute;
right: 16px;
top: 50%;
margin-top: -3px;
border-width: 6px 6px 0 6px;
border-style: solid;
border-color: grey transparent;
}
.wrapper-dropdown-2 .dropdown {
/* Size & position */
position: absolute;
top: 30%;
padding:3px 3px 3px 3px;
border: 1px solid #47423F;
/* Styles */
background: white;
list-style: none;
text-align: left;
/* Hiding */
-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .15);
-moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .15);
box-shadow: 0 1px 6px rgba(0, 0, 0, .15);
z-index: 10000 !important;
display:none;
}
.wrapper-dropdown-2 .dropdown li a {
display: block;
text-decoration: none;
color: #333;
float:left;
width:125px;
border-radius:1px;
padding: 4px 4px 4px 4px;
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-ms-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
/* Hover state */
.wrapper-dropdown-2 .dropdown li:hover a {
width:125px;
background-color: #eee;
}
/* Active state */
.wrapper-dropdown-2.active:after {
border-width: 0 6px 6px 6px;
}
.wrapper-dropdown-2.active .dropdown {
pointer-events: auto;
-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .15);
-moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .15);
box-shadow: 0 1px 6px rgba(0, 0, 0, .15);
}
JavaScript
(function ($) {
$.fn.extend({
dropdownz: function(options) {
var defaults = {
action : 'click',
duration: 400
}
var options = $.extend(defaults, options);
var o = options;
$(this).children('ul').hide();
$(this).on(o.action, function (e) {
if ($(this).hasClass('active')) {
$(this).children('ul').stop().slideUp(o.duration),
$(this).removeClass('active');
} else {
$('.active').children('ul').hide(0, function(){
$('.active').removeClass('active');
});
$(this).children('ul').stop().slideDown(o.duration),
$(this).addClass('active');
}
e.stopPropagation();
});
$('html').click(function() {
$('.active').children('ul').hide(0, function(){
$('.active').removeClass('active');
});
});
}
});
})(jQuery);
$('.wrapper-dropdown-2').dropdownz({duration : 200});