2017-08-25 63 views
-1

我正在嘗試使單頁滾動,但我有一個小問題。我有加法運算符不工作

var main = document.getElementById('main'); 

window.addEventListener('scroll', function(){ 
    window.scrollTo(0, 0); 
    var top = -main.offsetTop; 
    main.style.top = -100 + '%';   
}); 

現在這隻能一次很明顯,所以我試圖把加法運算符,因此每次滾動時扣除100%。

main.style.top -= 100 + '%'; 

但這並不出於某種原因..

加建工程,如果我這樣做,而不是...

var top = main.offsetTop; 
    main.style.top = top - 100 + '%'; 

但由於頂部在技術上PX亂搞的事情了不是%。所以任何想法如何使main.style.top - = 100 +'%';工作還是一個很好的選擇呢?

+1

你不能做減法或加法或字符串值。 '.style.top'是什麼。許多可能的解決方案之一是使用'parseInt()'來獲取數字部分,在* that *上進行數學運算,然後在結果的末尾連接'%'。 – nnnnnn

+0

你想做什麼? –

+0

main.style.top - = 100 +'%'不能像你期望的那樣工作,因爲右邊的計算結果是字符串'100%'。 – ivo

回答

2

讓我寫以另一種方式,這意味着同樣的事情表達main.style.top -= 100 + '%';

​​

,如果你會發生什麼 - =從任何一個字符串?您放入的第一個表達式(main.style.top = top - 100 + '%';)與您想要的更接近,但仍然不正確。如果你想每次減去100%的最高值,就像你說的那樣,你需要以像素爲單位而不是百分比。所以首先你需要找出有多少像素是100%,看你的代碼可能只是你的價值main.offsetTop。然後你需要從最高值中減去該值。所以你有第一個接近,但我認爲你需要:

var main = document.getElementById('main'); 

window.addEventListener('scroll', function(){ 
    window.scrollTo(0, 0); 
    var top = main.offsetTop; 
    main.style.top -= top;  
});