简体   繁体   English

居中父 div 滚动条,具有动态宽度

[英]Centering parent div scroll bar, having dynamic width

I have one parent div and one child canvas, I want to center the scroll bar of parent div because I can't add any style to canvas in my project.我有一个父div和一个子canvas,我想将父div的滚动条居中,因为我无法在我的项目中为canvas添加任何样式。

 #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>
In this snippet, margins on canvas is for demo becuase the canvas has different width and height and it is centered. 在此代码段中,canvas 上的边距用于演示,因为 canvas 具有不同的宽度和高度并且居中。
I just want to scroll the parent div where the inner canvas become in center. 我只想滚动内部 canvas 成为中心的父 div。 I have done this but no proper result 我这样做了但没有正确的结果

 $(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>
Reference to above code: How to position horizontal scroll bar at center of DIV 参考上面代码: How to position horizontal scroll bar at center of DIV
If you want to check in live domain what am I doing: https://mypagemaker.s3.amazonaws.com/index.html 如果您想检查实时域,我在做什么: https://mypagemaker.s3.amazonaws.com/index.html

You need to wrap your parental div in a taller parental div.您需要将父级 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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM