我正在开发一个滚动到一边的网站,我使用固定位置将菜单保持在最顶层,但我知道当我向下滚动时,菜单也会向下滚动。我想知道当我滚动到侧面时是否有办法让菜单保持在顶部,但是当我向下滚动时它不会下降。
所以我尝试使用相对于身体的绝对位置,但是当我侧滚时,这并不会使菜单保持在顶部。
#menu
{
background : url(images/banner5.gif) no-repeat;
height : 60px;
margin-top : 20px;
position : absolute;
left : 450px;
}
#menuFloat li
{
display : inline;
float : left;
padding : 8px 20px 0px 30px;
}
#menuFloat li a
{
color : #9d0c10;
font-family : Erato;
font-size : 12pt;
font-style : italic;
text-decoration : none;
}
$(document).ready(function() {
$("#menuFloat a").bind("click",function(event){ event.preventDefault();
var target = $(this).attr("href");
$("html, body").stop().animate({ scrollLeft: $(target).offset().left, scrollTop: $(target).offset().top }, 1200);
}); });
<div id="menu">
<ul id="menuFloat">
<li><a class="nav1" href="#nav1">Home</a></li>
<li><a class="nav2" href="#nav2">About Us</a></li>
<li><a class="nav3" href="#nav3">Members</a></li>
<li><a class="nav4" href="#nav4">Events</a></li>
<li><a class="nav5" href="#nav5">Media</a></li>
<li><a class="nav6" href="#nav6">Contact Us</a></li>
</ul>
</div>
第一部分是菜单的CSS,第二部分是jquery代码,它可以如何水平滑动,第三部分是菜单的html。
如果您对我的问题感到困惑,请点击此处:http://permika-montreal.tk/new.php 当你向下滚动时,你会看到菜单也是如此,我希望不会发生这种情况。
答案 0 :(得分:2)
只要用户使用JavaScript / jQuery水平滚动,就可以通过更新left
CSS属性来实现此目的。
请参阅:https://stackoverflow.com/a/9423822/1718121
$(window).scroll(function(event) {
var x = $(this).scrollLeft();
$("#menu").css("left", x + offset); //Change offset to be the default margin-left of your menu.
}
答案 1 :(得分:1)
看这里
#menu
{
background : url(images/banner5.gif) no-repeat;
height : 60px;
top : 20px;
position : absolute;
left : 50px;
}
Jquery的
$(document).ready(function(){
var lastScrollLeft = 0;
$(window).scroll(function() {
var documentScrollLeft = $(document).scrollLeft();
if (lastScrollLeft != documentScrollLeft) {
console.log('scroll x');
lastScrollLeft = documentScrollLeft;
$("#menu").css("left", lastScrollLeft+50);
}
});
});