这个Jquery代码使我页面上的箭头滚动页面。我觉得有更好更短的方法来做到这一点。
//Functions that make the arrows on the page scroll through the page.
$("#arrow1").click(function() {
$('html, body').animate({
scrollTop: $("#aboutMe").offset().top
}, 1000);
});
$("#arrow2").click(function() {
$('html, body').animate({
scrollTop: $("#skillsPart").offset().top
}, 1000);
});
$("#arrow3").click(function() {
$('html, body').animate({
scrollTop: $("#contactMe").offset().top
}, 1000);
});
$("#arrow4").click(function() {
$('html, body').animate({
scrollTop: $("#topPart").offset().top
}, 1000);
});
答案 0 :(得分:0)
您可以创建一个可重复使用的函数,只需添加要滚动到els
数组的元素和元素
var main = $('html, body');
function handleClick(el, scrollToEl) {
el.click(function() {
main.animate({
scrollTop: scollToEl.offset().top
}, 1000);
})
}
var els = [
[$('#arrow1'), $("#aboutMe")],
[$('#arrow2'), $("#skillsPart")],
[$('#arrow3'), $("#contactMe"],
[$('#arrow4'), $("#topPart")]
];
els.forEach(function(el){
handleClick(el[0], el[1]);
});
答案 1 :(得分:-2)
我得到的答案可能不是你想要的,但我猜还是......
$("#arrow1,#arrow2,#arrow3,#arrow4").click(function() {
var a1 = $("#aboutMe").offset().top,
a2 = $("#skillsPart").offset().top,
a3 = $("#contactMe").offset().top,
a4 = $("#topPart").offset().top;
switch ($(this).attr("id") {
case "arrow1":
$('html, body').animate({
scrollTop: a1
}, 1000);
break;
case "arrow2":
$('html, body').animate({
scrollTop: a2
}, 1000);
break;
case "arrow3":
$('html, body').animate({
scrollTop: a3
}, 1000);
break;
case "arrow4":
$('html, body').animate({
scrollTop: a4
}, 1000);
break;
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>