2017-01-15 6 views
0

私は、フロントエンドアプリケーションを作成するClojureScriptの開発者であり、これまではJavascriptを使用する必要はありませんでした。しかし今、私は簡単なscrollAnimationのためにいくつかのJqueryを実装したいと思っています。 Jayqは働いていますが、私はinteropの使用に問題があります。Clojure Javascript Interop、multiple parameters

$("#button").click(function() { 
$('html, body').animate({ 
    scrollTop: $("#elementtoScrollToID").offset().top 
}, 2000); 
}); 

これまでのところ、私は私がスクロールしたいのdivの位置を取得する最初の部分を、書くために管理することができます。

(.-top (.offset ($ "#scrollto"))) 

しかし、2番目の部分は難しいと思っていました。私は以下のようなやり方でそれを試してみましたが、これもうまくいきませんでした。

#(.animate ($ "html" "body") (clj->js {"scrollTop" (.-top (.offset ($ "#scrollto"))) 
}) "2000") 

ご協力いただきましてありがとうございます。

答えて

1
(-> (js/$ "html, body") 
    (.animate (clj->js {:scrollTop (-> (js/$ "#ide") 
             (.offset) 
             .-top)}) 
       2000)) 
+2

このコードの機能、元のコードとの違い、問題がなぜ解決されるのかを簡単に説明できますか? – JJJ

+1

ありがとうございます、あなたのソリューションは完璧ですが、JJJのコメントに同意します。次回は私が尋ねる必要もなく、どうやってそのようにしたのか分かります。 –