2017-05-31 23 views
1

如果你看看this site,看起來他們在React中構建了整個事情。當你滾動時,它會比普通的滾動更平滑(也許有點「更重」)。在網上看,似乎有這種行爲的無數解決方案,但只有當你專門去頁面中的某個點時,而不是用鼠標滾動。有誰知道這種滾動行爲是如何被複制的?

看着代碼,它正在做y軸上的transform: translate3d

如果我不在React中構建網站,是否可以使用不太複雜的JS或jQuery解決方案來複制此問題?

+0

是的,這是可能的,但你也知道,我們不寫了代碼,爲用戶和需要一個工作代碼段能夠實際上幫助 – LGSon

回答

0

你應該先查詢一下,學習並嘗試選項,然後再索要代碼......正如LGSon提到的那樣。

無論如何,在途中將是:

http://jsfiddle.net/gmelcul/cZuym/(從gdsmith我相信)

if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false); 
window.onmousewheel = document.onmousewheel = wheel; 

function wheel(event) { 
    var delta = 0; 
    if (event.wheelDelta) delta = event.wheelDelta/120; 
    else if (event.detail) delta = -event.detail/3; 

    handle(delta); 
    if (event.preventDefault) event.preventDefault(); 
    event.returnValue = false; 
} 

function handle(delta) { 
    var time = 1000; 
    var distance = 150; 

    $('html, body').stop().animate({ 
     scrollTop: $(window).scrollTop() - (distance * delta) 
    }, time); 
} 

與手柄功能的值剛玩。

它使用onmousewheel已棄用(https://www.w3schools.com/tags/att_onmousewheel.asp)。應該使用onwheelhttps://www.w3schools.com/tags/att_onwheel.asp

試試看

相關問題