2015-03-13 95 views
1

我使用browserify構建反應組件。我需要使用npm jquery-scrollto插件https://www.npmjs.com/package/jquery-scrollto,但它不起作用。如何使用jquery-scrollto做出反應?

我不明白它如何使用?也許

var $   = require('jquery'); 
var ScrollTo  = require('jquery-scrollto'); 

ScrollTo('#myelem'); 

或者其他什麼東西......

+0

嗨,任何機會,你有沒有弄清楚如何使用jQuery的scrollto的反應呢?我遇到同樣的問題,顯示錯誤scrollTo不是函數 – 2017-04-27 10:40:49

回答

0

即使使用browserify,jquery.scrollTo仍然是一個jQuery插件,應該被稱爲$(...)。scrollTo(...)。

你仍然需要需要它,所以它增加了自己jQuery.fn,這樣的事情:

var $   = require('jquery'); 
require('jquery-scrollto'); 

$(window).scrollTo('#myelem', 1000); 

參觀Github page的文檔。

0

有兩件事情需要scrollTo:事情滾動(如windowdiv)和(在你的榜樣#myelem)的目標。你想滾動的東西應該是一個jQuery對象,這就是爲什麼@Ariel Flesler建議像這樣包裝它:$(thingToScroll)

在你開始使用之前,如果你使用的是Browserify,你需要正確導入jQuery和插件。我谷歌如何做到這一點,走了更多的困惑 - 看起來不簡單。這裏有一個看起來像這樣的SO帖子:Configure a generic jQuery plugin with Browserify-shim?

但是我建議不要嘗試,因爲在React中使用該插件可能比它的價值更麻煩。如果你只想滾動window它可能不是那麼糟糕,但如果你想滾動頁面的元素,你將不得不在React的虛擬DOM和頁面上的真實DOM之間來回切換,使用ref s http://facebook.github.io/react/docs/working-with-the-browser.html。 如果您已經決定使用React,那麼使用JavaScript和標準的DOM API代替jQuery會更好。 jQuery的一個優點是它可以處理瀏覽器DOM實現中的不一致和錯誤。 React也爲你在幕後做了一些這方面的工作。

所以,簡短的版本是,它將是最簡單的選擇是否要使用React或使用jQuery。如果不通過式的jQuery的MDN瀏覽器API文檔可能會有幫助:

https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView