任何人都可以帮我弄清楚如何使用jquery在页面上使用另一个div在div下进行一点下拉。
这是我到目前为止(jquery / jquery UI)......
基本上我尝试的想法虽然这需要修复,因为我猜它的CSS需要调整页面大小?所以下拉div总是在用户标签之类的东西。
无论如何我不知道我在这里尝试的是否是正确/最好的方法,但我只是尝试学习它,所以请随意提供更好的方法。谢谢!
加价:
<div id='top-wrapper'>
<div id='top-inner-wrapper'>
<div id='title'>Main Title</div>
<div id='user-like-item'>User Name Type Thing</div>
</div>
</div>
<div id='content-wrapper'></div>
<div id='hidden-drop-down' style='display:none;'></div>
jquery:
$(document).ready(function () {
$("#user-like-item").hover( function () {
$(this).addClass("highlighted-user");
$("#hidden-drop-down").show('slide', { direction: 'up'}, 1000);
}, function () {
$(this).removeClass("highlighted-user");
$("#hidden-drop-down").hide('slide', { direction: 'up'}, 1000);
});
});
我试过的样式:
*{
padding:0;
margin:0
}
#top-wrapper{
position:fixed;
top:0;
width:100%;
background-color:#2d2d2d;
min-height:50px;
}
#top-inner-wrapper{
width:70%;
margin:0 auto;
color:white;
border-right:1px solid white;
border-left:1px solid white;
}
#title, #user-like-item{
width:40%;
float:left;
font-family:segoe ui;
font-size:1.3em;
font-weight:lighter;
margin:2% 0;
}
#user-like-item{
float:right;
font-size:.8em;
margin-top:30px
}
.highlighted-user{
color:#fa3701;
cursor:pointer;
}
#hidden-drop-down{
min-height:100px;
background-color:#e0e0e0;
border:1px solid #2d2d2d;
position:fixed;
left:58%;
width:20%;
top:55px
}
编辑:对不明确的问题道歉。所以我想从另一个div中删除div(就像那个用户名的东西)。我只是在学习这个,所以可能会有一些更好的方法,但小提琴就是我摆弄的东西。似乎下拉div的定位不是应该的...如果我调整页面大小它没有正确对齐。只是想知道如何解决这个问题,或者更好的是还有什么可以做的改进?这有意义吗?
答案 0 :(得分:2)
你的问题不是很清楚,我可以立即推荐的一件事就是使用jQuery toggle
函数:
$(document).ready(function () {
$("#user-like-item").hover( function () {
$(this).addClass("highlighted-user");
$("#hidden-drop-down").toggle('slide', { direction: 'up'}, 1000);
});
});
关于这个问题:如何你想要定位它吗?你想要达到什么目标?
<强>更新强>
好吧,我帮你找到了。
你很难解决,因为你的布局是用各种不同的属性构建的,因此设计没有响应。
让我教你一些可以防止未来出现瑕疵的基本课程:
现在让我们来看看我写的新 HTML :
<div id='content-wrapper'>
<div id='top-wrapper'>
<div class='top-inner-wrapper'>
<div id='title'>Main Title</div>
<div id='user-like-item'>User Name Type Thing</div>
</div>
</div>
</div>
<div class='top-inner-wrapper'>
<div id='hidden-drop-down' style='display:none;'><br>You can still hover over me</div>
</div>
正如您所看到的,我在content
和top-wrapper
周围放了一个包装器。我这样做是因为我们需要跟踪鼠标移动,如下面的jQuery中所示。
另外,我将top-inner-wrapper
作为一个类,以便我可以将它(复杂的!!!)CSS属性应用到hidden-drop-down
。
body {
width:100%;
height:100%;
}
*{padding:0;margin:0}
#top-wrapper{
top:0;
width:100%;
background-color:#2d2d2d;
min-height:50px;
}
.top-inner-wrapper{
// just put the width at 100%.
// because a width of 70% is very complex to work with
width:100%;
margin:0 auto;
color:white;
border-right:1px solid white;
border-left:1px solid white;
}
#title, #user-like-item{
width:40%;
float:left;
font-family:segoe ui;
font-size:1.3em;
font-weight:lighter;
// I changed from relative margin (10%) to absolute margin
margin-left:20px;
}
#user-like-item{
float:right;
width:200px;
font-size:.8em;
margin-top:30px;
// changed to color so I can track it's width
background-color:yellow;
// Relative margin: I don't like it but this is what you had
margin-right:10%;
}
.highlighted-user{
color:#fa3701;
cursor:pointer;
}
#hidden-drop-down{
// Now these changes are important
// ABSOLUTE HEIGHT
height:100px;
// ABSOLUTE WIDTH
width:200px;
background-color:#e0e0e0;
border:1px solid #2d2d2d;
top:50px;
// RELATIVE MARGIN: because you also did this at `#user-like-item`
right:10%;
margin-right:-1px;
position:absolute;
// float:right !!!
float:right;
}
#content-wrapper {
// always let the wrapper be 100%
width:100%;
// you can specify height of page here (or do auto if you actually have content)
height:600px;
background-color:lightblue;
}
$(document).ready(function () {
$("#user-like-item").hover( function () {
$(this).addClass("highlighted-user");
// if hover over #user-like-item: slide down
$("#hidden-drop-down").slideDown(function()
{
// only slide up if mouse has entered #content-wrapper
$("#content-wrapper").mouseenter(function()
{
$("#hidden-drop-down").slideUp();
});
// only slide up if mouse has entered #top-wrapper
$("#top-wrapper").mouseenter(function()
{
$("#hidden-drop-down").slideUp();
});
});
});
});
请注意,使用这个新的jQuery,隐藏的滑动div将不立即像以前一样消失。这是因为您仍然希望用户能够阅读/单击div。我的意思是:如果它再次向上滑动,滑动div的用途是什么。
您可以找到我相应的jsFiddle by clicking this。
我希望这可以帮助你。
祝你好运。