【问题标题】:Ul sector moves to the leftUl 扇区向左移动
【发布时间】:2016-05-15 04:18:23
【问题描述】:
我想把所有 ul 部分移到左边。
表示ul部分(菜单的第二部分
) 在这张图片中被左侧打开
菜单而不是右侧。
请帮帮我。
my menu
my html code
.cd-dropdown-content,.cd-dropdown-content ul {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
-webkit-transition: -webkit-transform 0.3s;
-moz-transition: -moz-transform 0.3s;
transition: transform 0.3s;
padding-top: 50px;
}
【问题讨论】:
标签:
html
css
web
conditional-operator
【解决方案1】:
jQuery(document).ready(function($){
//open/close mega-navigation
$('.cd-dropdown-trigger').on('click', function(event){
event.preventDefault();
toggleNav();
});
//close meganavigation
$('.cd-dropdown .cd-close').on('click', function(event){
event.preventDefault();
toggleNav();
});
//on mobile - open submenu
$('.has-children').children('a').on('click', function(event){
//prevent default clicking on direct children of .has-children
event.preventDefault();
var selected = $(this);
selected.next('ul').removeClass('is-hidden').end().parent('.has-children').parent('ul').addClass('move-out');
});
//on desktop - differentiate between a user trying to hover over a dropdown item vs trying to navigate into a submenu's contents
var submenuDirection = ( !$('.cd-dropdown-wrapper').hasClass('open-to-left') ) ? 'right' : 'left';
$('.cd-dropdown-content').menuAim({
activate: function(row) {
$(row).children().addClass('is-active').removeClass('fade-out');
if( $('.cd-dropdown-content .fade-in').length == 0 ) $(row).children('ul').addClass('fade-in');
},
deactivate: function(row) {
$(row).children().removeClass('is-active');
if( $('li.has-children:hover').length == 0 || $('li.has-children:hover').is($(row)) ) {
$('.cd-dropdown-content').find('.fade-in').removeClass('fade-in');
$(row).children('ul').addClass('fade-out')
}
},
exitMenu: function() {
$('.cd-dropdown-content').find('.is-active').removeClass('is-active');
return true;
},
submenuDirection: submenuDirection,
});
//submenu items - go back link
$('.go-back').on('click', function(){
var selected = $(this),
visibleNav = $(this).parent('ul').parent('.has-children').parent('ul');
selected.parent('ul').addClass('is-hidden').parent('.has-children').parent('ul').removeClass('move-out');
});
function toggleNav(){
var navIsVisible = ( !$('.cd-dropdown').hasClass('dropdown-is-active') ) ? true : false;
$('.cd-dropdown').toggleClass('dropdown-is-active', navIsVisible);
$('.cd-dropdown-trigger').toggleClass('dropdown-is-active', navIsVisible);
if( !navIsVisible ) {
$('.cd-dropdown').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',function(){
$('.has-children ul').addClass('is-hidden');
$('.move-out').removeClass('move-out');
$('.is-active').removeClass('is-active');
});
}
}
//IE9 placeholder fallback
//credits http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
if(!Modernizr.input.placeholder){
$('[placeholder]').focus(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
}).blur(function() {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.val(input.attr('placeholder'));
}
}).blur();
$('[placeholder]').parents('form').submit(function() {
$(this).find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
})
});
}
});
【解决方案2】:
This is the solution for your problem.. Hope its helpful
<!--- HTML -->
<ul class="dropdown-menu">
<li><a href="#">Main menu</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a>
<ul class="dropdown-submenu">
<li><a href="#">Sub menu</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
<!-- End HTML -->
/** CSS **/
.dropdown-menu{
margin: 0;
padding: 10px;
list-style: none;
background-color: #dddddd;
max-width:300px;
width: auto;
display: inline-block;
margin-left: 200px;
position:relative;
}
.dropdown-menu li , .dropdown-submenu li{
padding: 5px;
}
.dropdown-menu li a{
text-decoration: none;
color: #ff0000;
}
.dropdown-submenu li a{
text-decoration: none;
color: #fff;
}
.dropdown-submenu {
position: absolute;
list-style:none;
background-color: red;
color:#fff;
margin:0;
padding: 10px;
z-index:2;
width: 100%;
top:0;
right:100%;
}
/** End CSS **/
这里是链接JSFiddle