$('#notepad').hide();
$('#news').hide();
$('#todo').hide();
$('#notepadIcon').click(function(){
$('#notepad').toggle();
});
$('#newsIcon').click(function(){
$('#news').toggle();
});
$('#todoListIcon').click(function(){
$('#todo').toggle();
});
$('button').click(function(){
$('#todoListIcon').hide();
});
#todoListIcon,
#newsIcon,
#notepadIcon {
font-size: 24px;
cursor: pointer;
margin-left: 100px;
transition: 0.5s ease;
display: inline-block;
opacity: 0.8;
color:#000;
}
#bottomRightIcons {
bottom:15px;
right:30px;
position: fixed;
display: inline-block;
}
#todo,
#news,
#notepad {
width: 290px;
height:250px;
max-height: 350px;
background-color:#000;
position: fixed;
bottom: 45px;
right: 28px;
border-radius: 3px;
}
#news {
right: 152px;
}
#notepad {
right: 277px;
}
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Hide todo</button>
<div id="bottomRightIcons">
<div id="notepadIcon"><i title="Note Taker" class="fa fa-pencil-square-o"></i></div>
<div id="newsIcon"><i title="News" class="fa fa-newspaper-o"></i></div>
<div id="todoListIcon"><i title="Todo List" class="fa fa-th-list"><span id="notificationTodo" class="todoListNotification"></span></i></div>
</div>
<div id="notepad"></div>
<div id="news"></div>
<div id="todo"></div>
首先,我决定制作一个fiddle来帮助展示我的问题。
正如您所看到的,当您打开其中一个菜单时,它们会显示在正确的位置,但是一旦您隐藏其中一个图标,它们就不会跟随图标的位置。
理想情况下,我希望菜单div作为下拉菜单,因为它跟随图标。
有什么想法吗?欣赏它。
答案 0 :(得分:3)
现在的问题是菜单的值是固定的right
,因此当您切换位置时它们保持不变。您需要在切换时重置菜单的位置。
我已将课程icon
和menu
添加到相应的div中。
<div id="bottomRightIcons">
<div id="notepadIcon" class="icon"><i title="Note Taker" class="fa fa-pencil-square-o"></i></div>
<div id="newsIcon" class="icon"><i title="News" class="fa fa-newspaper-o"></i></div>
<div id="todoListIcon" class="icon"><i title="Todo List" class="fa fa-th-list"><span id="notificationTodo" class="todoListNotification"></span></i></div>
</div>
<div id="notepad" class="menu"></div>
<div id="news" class="menu"></div>
<div id="todo" class="menu"></div>
// JS
$('button').click(function(){
$('#todoListIcon').hide();
resetPosition();
});
function resetPosition() {
$('.icon').each(function(i){
var obj = $(this);
var left = obj.offset().left;
var width = obj.width();
var bodyWidth = $('body').width();
var right = bodyWidth - (left + width);
$('.menu').eq(i).css({'right':right+'px'});
});
}