動的な幅を持つ親divスクロールバーを中央に配置
Aug 22 2020
親divと子キャンバスが1つずつありますが、プロジェクトのキャンバスにスタイルを追加できないため、親divのスクロールバーを中央に配置したいと思います。
#parent{
width:80vw;
height:200px;
border:1px blue solid;
overflow-x:scroll;
}
#parent #child{
width:70vw;
border:1px solid black;
margin-left:50px;
margin-right:50px;
}
<div id="parent">
<canvas id="child">
</canvas>
</div>
内側のキャンバスが中央になる親divをスクロールしたいだけです。私はこれをしましたが、適切な結果はありません
$(document).ready(function(){ var parent = $("#parent");
var child = $("#child");
var final = (child.width() - parent.width()) / 2;
parent.scrollLeft(final);
console.log(final)
});
#parent{
width:90vw;
height:200px;
border:1px blue solid;
overflow-x:scroll;
}
#parent #child{
width:80vw;
border:1px solid black;
margin-left:50px;
margin-right:50px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="parent">
<canvas id="child">
</canvas>
</div>
ライブドメインでチェックインする場合、私は何をしていますか? https://mypagemaker.s3.amazonaws.com/index.html
回答
1 s.kuznetsov Aug 22 2020 at 17:11
親のdivを背の高い親のdivでラップする必要があります。
$(document).ready(function(){ var parent = $('#parent');
var parent_sub = $('#parent > #parent_sub');
var final = (parent_sub.width() - parent.width())/2;
parent.scrollLeft(final);
console.log(final);
});
#parent {
width:90vw;
overflow-x:scroll;
height:200px;
border:1px blue solid;
}
#parent_sub {
display: table;
}
#parent #child{
width:80vw;
border:1px solid black;
margin-left:50px;
margin-right:50px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="parent">
<div id="parent_sub">
<canvas id="child">
</canvas>
</div>
</div>