所以我開始學習ES6和模塊化的JS(使用Webpack),現在我想重構這個舊的腳本以返回頂部箭頭,並將其轉換爲帶有構造函數和全部的ES6樣式腳本。這是我現在得到的,但不知道如何寫ScrollTop類內的條件語句..任何想法?如何將此腳本重構爲ES6?
我想以某種方式編寫和訪問條件邏輯,但不知道如何在類中實現$(window).scroll等。我需要一個新的功能來照顧這個..?我希望它的工作原理相同,但要更乾淨地寫下來。
舊腳本:
$(window).scroll(function() {
if ($(this).scrollTop() >= 200) {
$('#return-to-top').fadeIn(200);
} else {
$('#return-to-top').fadeOut(200);
}
});
$('#return-to-top').click(function() {
$('body,html').animate({
scrollTop : 0
}, 300);
});
<a href="#" id="return-to-top"><i class="fa fa-chevron-up"></i></a>
新的腳本:
import $ from 'jquery';
class ScrollTop {
constructor() {
this.scrollUp = $("#return-to-top");
this.topDistance = $("#return-to-top").offset().top;
this.events();
}
events() {
this.scrollUp.click(this.returnToTop.bind(this));
}
returnToTop() {
$('body,html').animate({
topDistance: 0
}, 3000);
}
}
export default ScrollTop;
當你說'無法弄清楚如何在ScrollTop類中編寫條件語句時,你是在談論'$(window).scroll'事件的函數回調嗎? –
是的,我試圖以某種方式編寫和訪問條件邏輯,但不知道如何實現$(window).scroll等到類中。我需要一個新的功能來照顧這個..?我希望它的工作原理相同,但要更乾淨地編寫它 – Smithy
您的舊腳本已經是ES6了嗎?爲什麼你想在這裏引入多個實例? – Bergi