我为这篇长篇大论道歉。我希望包含一些可能有帮助的内容。
我有一个单页网站,其中包含几个垂直堆叠的div。我正在使用浮动导航栏和softscroll.js,以便在点击时将锚链接移动到div。
我是一名前端设计师,但通过这个网站以及数小时的试用/错误和谷歌搜索,我已经能够使所有元素都正常工作。 (窗口调整大小时自动调整div高度,突出显示单击的锚点链接,滚动等。)
我已将其设置为单击锚点链接将其类更改为“活动”。这非常有效。但是如果用户也手动滚动到div,我想触发相同的事情。
我已经查看过使用in this post的代码了,因为我已经看过几次了。但它取代了我已经开始工作的一些代码,但仍然没有突出显示。
以下是我用于活动锚点的代码:
// JS for highlight selected button
$(function() {
$("a").click(function() {
// remove classes from all
$("a").removeClass("active");
// add class to the one we clicked
$(this).addClass("active");
});
});
我正在使用这个根据窗口大小调整div的大小。不确定它是否相关,但在这里:
// JS for Div Height Auto Resize
$(document).ready(function(){
resizeDiv();
});
window.onresize = function(event) {
resizeDiv();
}
function resizeDiv() {
vpw = $(window).width();
vph = $(window).height();
$('.layoutblock').css({'height': vph + 'px'});
}
这是菜单HTML:
<div id="navigation">
<ul>
<li><a href="#composition" ><img src="images/icons/compicon.png" alt="composition" width="32" height="36" border="0" align="middle" />Composition</a></li>
<li><a href="#creative"><img src="images/icons/designicon.png" alt="Large Format" width="36" height="33" border="0" align="middle" /> Creative</a></li>
[...]
</ul>
</div>
...和菜单CSS:
#navigation {
background-color: #F60;
position: fixed;
height: 100%;
width: 60px;
-moz-transition:width .5s;
-webkit-transition:width .5s;
-o-transition:width .5s;
transition:width .5s;
overflow: hidden;
left: 0px;
top: 0px;
z-index: 99;
padding-top: 30px;
margin-left: 0px;
}
#navigation:hover {
margin-left: 0px;
width: 190px;
}
#navigation li {
list-style: none;
margin-left: -40px;
}
#navigation img {
padding-left: 5px;
padding-right: 20px;
}
#navigation li a {
font-family: "Proxima N W01 Smbd", Arial, Helvetica;
font-size: 14px;
display: block;
color: white;
font-weight:bold;
text-decoration: none;
text-transform:uppercase;
line-height:26px;
padding-left:5px;
padding-right: 5px;
padding-top: 10px;
height: 50px;
white-space: nowrap;
}
a.active{
background-color: #333;
}
最后,这是测试页面的URL:[为安全起见,现在该网站已启动]
答案 0 :(得分:6)
嗯,我在这里找到了答案:Change Active Menu Item on Page Scroll?这导致了一个像魅力一样的小提琴。
我最终使用代码来监视锚标记并根据这些标记更改菜单。它甚至包括软滚动和点击高亮,所以我能够摆脱我正在使用的其他片段。
同样重要的是要注意:即使它在小提琴中起作用,我也有一段时间让它在我的网站上工作。事实证明我需要将片段放在身体的末端,以便在注册锚点之前加载所有内容。如果其他人遇到同样的问题,请给我一个提示。
答案 1 :(得分:0)
您可以使用Jquery的on方法并监听scroll
事件。