私は水平方向にスクロールするウェブサイトを持っていますユーザーが右にスクロールするときに常に枠内にとどまりたいブロックがあります。 Webkitブラウザでは完全にスムーズに見えますが、Firefoxではぎこちなくて、IEは本当に気にしません。
function fixMyId(){
$('#myId').css({'margin-left': 150 + $(window).scrollLeft()});
}
function fixMyIdAlt(){
$('#myId').stop().animate({'margin-left': 150 + $(window).scrollLeft()}, 300);
}
次に、ウィンドウスクロールでトリガーしました。
スクロールを平均化する最良の方法は何でしょうか。スクロールするのに非常に多くの秒数またはピクセルが機能を起動するか、またはスクロールを停止するとブロックが所定の位置にアニメーション化されます。私はdelay()で試してみましたが、何もしません。そして、この1は愚かに見える(プラス私はクランチングのこの種のオーバーヘッドが何であるか見当がつかない):
function fixMyIdStupid(){
window.scrollCounter++;
if(window.scrollCounter % 20 == 0) $('#myId').stop().animate({'margin-left': 150 + $(window).scrollLeft()}, 300);
}
だから私は何をしますか? setTimeoutとsetIntervalが必要かもしれませんが、それらは常に私の頭を傷つけます。
EDIT:ここでアクションで、それのjsfiddleです:http://jsfiddle.net/xsxSq/
#のf0f広場が#myIdです。
+1 IEを気にしないでください。 [jsFiddle](http://jsfiddle.net)や[JS Bin](http://jsbin.com)のサンプルを提供できますか? – nyuszika7h
ここに行きます:http://jsfiddle.net/xsxSq/ – Hoatzin