我发现这个site并且我想要它的工作方式但不幸的是我对jquery的了解较少,但我知道如何进行简单的修改以使其工作,
我当前的js代码在这里:
$(".fadeScroll").click(function (event) {
event.preventDefault();
//calculate destination place
var dest = 0;
if ($(this.hash).offset().top > $(document).height() - $(window).height()) {
dest = $(document).height() - $(window).height();
} else {
dest = $(this.hash).offset().top;
}
//go to destination
$('html,body').animate({
scrollTop: dest
}, 2000, 'swing');
});
但它只是顺利滚动( inpage Links ),下一个按钮不起作用,我不知道接下来要做什么。我喜欢这个site的效果,因为它可以让访问者知道他/她是什么内容,因为菜单中还有active state
下一个和上一个按钮与menu
的坐标和工作得很好
这是我当前的FIDDLE
希望这是一种感觉
答案 0 :(得分:1)
我已更新您的标记和脚本以执行您想要的操作。其中一个主要问题是你在prev& amp;上使用相同的类名。下一个按钮......
更新的脚本使用单个函数来控制滚动。各种按钮更新项目索引以滚动到,然后调用该函数。
here's your updated fiddle。 和你更新的JS。
var itemIndex = 1;
function scrollToContent() {
//dont allow zero or greater than 5
if (itemIndex <= 1) {
itemIndex = 1;
$('#fade').hide();
}
else{
$('#fade').show();
}
if (itemIndex >= 5) {
itemIndex = 5;
$('#fade1').hide();
}
else{
$('#fade1').show();
}
//scroll
$('html, body').animate({
scrollTop : $('#content' + itemIndex).offset().top
}, 2000);
//add & remove active class name
$('button.active').removeClass('active');
$('.navigation li:nth-child(' + itemIndex + ') button').addClass('active');
}
//click handlers
function clickFuncs() {
$(".navigation button").click(function() {
itemIndex = $(this).attr('data-index');
scrollToContent();
});
$('#fade1').click(function() {++itemIndex;
scrollToContent();
});
$('#fade').click(function() {--itemIndex;
scrollToContent();
});
}
$(document).ready(function() {
//setup click handlers
clickFuncs();
});
更新了HTML
<ul class="navigation">
<li><button data-index="1">content1</button></li>
<li><button data-index="2">content2</button></li>
<li><button data-index="3">content3</button></li>
<li><button data-index="4">content4</button></li>
<li><button data-index="5">content5</button></li>
</ul>
<p class="buttons">
<button id="fade">prev</button>
<button id="fade1">next</button>
</p>