2016-07-19 10 views
0

内部の子のdivに私は、スクロールのdiv内position: absoluteのdivを配置し、左または右にスクロールしたとき、それは左に滞在しようとしています。これは、divを1つの単位のように動かすためです(左、右、上、下をスクロールする場合)。 2Kを下回るHD画面(つまり、2k、3k、4kなど)では、子画面のdivが飛び跳ねて悪く見える画面ではうまくいきます。変更marginLeftスクロール親divの

それを行うには良い方法はありますか? HDスクリーン用にCSSにどのような変更を加える必要がありますか?

#parent {  
    overflow: auto; 
    width: 100%; 
    height: 100%; 
    position: relative; 
} 
#child {  
    overflow: hidden; 
    width: 20%; 
    height: 100%; 
    z-index:1; 
    position: absolute; 
} 
<div id="parent"> 
    <div id="child"></div> 
</div> 
$("#parent").on('scroll', function (event) { 
    $("#child")[0].style.marginLeft = this.scrollLeft+"px"; 
}); 
+0

?毎回マージンを設定する必要はありませんか? – eisbehr

+0

私はこれについて私の答えでもあなたに例を挙げました。 – eisbehr

答えて

2

あなたは値を設定するためにjQueryのcss機能を使用することができます。

$("#parent").on("scroll", function() { 
    $("#child").css("margin-left", $(this).scrollLeft() + "px"); 
}); 

しかし、私は全然このためのjQueryを使用することはありません:そして scrollLeft()機能を使用するためにjQueryオブジェクトとして親要素を使用します。これにはCSSの fixedポジションを使用してみませんか? Like in this example。どの画面でもちらついてはいけません。あなたはdivの固定位置の代わりに、絶対にしないのはなぜ

+0

jqueryが動作し、javascriptが動作しない理由 –

+0

'$("#child ")'はjQueryオブジェクトであり、プレーンなjsではないためです。あなたが望むなら、あなたはjs-wayを使うことができるよりも、dom要素を選択する必要があります: '$("#child ")[0] .style.marginLeft = '123px';'。 – eisbehr

+0

あなたは右の私は私のexample.Thankあなたに[0]を入れるのを忘れている!:) –

関連する問題