javascript - jQuery: Hidden element shifts downward on hover out? -


when appborder element hovered over, hidden appmenu appears on right. once hover out, appmenu quick drop below appborder before disappears. how rid of weird after-effect appmenu disappears on hover out instead of plopping below main element?

it's because you're using css :hover change width of parent, doesn't fire @ same time the jquery makes strip on right fade in , out completely. work fine fading in, when un-:hover element, removes new width before strip on right removed, causing shift below since there isn't enough horizontal space display right.

you don't need widths though, can use display: flex (or used display: inline-flex since floated element originally) on parent , they'll lay out side-by-side, , seems behave expected.

$(function(){  	$('.appborder').hover(function(){  		var menuid = $(this).attr('data-menuid');  		$('#'+menuid).stop(false, true).fadetoggle('fast');  	});  });
.appborder {  	border: 1px solid #898989;  	display: inline-flex;  	margin: 10px 7px 10px 7px;  }  .appborder:hover {  	cursor: pointer;  }  .appimg {  	width: 70px;  	height:70px;  	margin: 3px 0px 0px 3px;  }  #text {  	width: 80px;  	height: 16px;  	float: left;  	font-family: trebuchet ms, helvetica, sans-serif;  	font-size: 13px;  	font-weight: 500;  	text-align: center;  	padding: 5px 0px 5px 0px;  }  .appmenu {  	display: none;  }  .iconborder, .icon4border {  	border: 1px solid #b7b7b7;  	border-top: none;  	border-right: none;   	width:26px;  	height: 18px;  	text-align: center;  	padding: 4px 0px 2px 0px;  }  .icon4border {  	border-bottom: none;  }  .icon {  	width: 17px;  	height: 17px;  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>  <div class="appborder" data-menuid="menu1">  <div id="iconandtext">  	<div><img src="i/app1.png" class="appimg"></div>  	<div id="text">text</div>  </div>  		  <div class="appmenu" id="menu1">  	<div class="iconborder"><img src="#" class="icon"></div>  	<div class="iconborder"><img src="#" class="icon"></div>  	<div class="iconborder"><img src="#" class="icon"></div>  	<div class="icon4border"><img src="#" class="icon"></div>  </div>  	  </div>


Comments

Popular posts from this blog

c# - Update a combobox from a presenter (MVP) -

How to understand 2 main() functions after using uftrace to profile the C++ program? -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -