首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使元素在可滚动的div中居中

问使元素在可滚动的div中居中
EN

Stack Overflow用户
提问于 2018-08-06 18:00:16
回答 1查看 579关注 0票数 0

我正在制作某种日历的时间线,在每日视图上,有一个垂直滚动和一条红线指示当前时间。请以这个jsbin为例https://jsbin.com/pazufivige/edit?html,output

​

代码语言:javascript
复制
<div style="width: 500px; overflow: scroll">
    <div style="width: 5000px; height: 100px; background-color:grey;position: relative;">
        <div style="position: absolute; height: 100%; width: 2px; background-color: #EF5350; z-index: 5; left: 8%";></div>
    </div>
</div>

​

我想让红线保持在div的中心,所以我想让可滚动的div滚动到正确的位置,这样它就会留在中间。红线每分钟更新一次,并且处于计划的顶端,所以我必须每分钟计算一次滚动位置。我该怎么做呢?我在谷歌上搜索了很多,但找不到与我的问题类似的东西,有人能把我推向正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-06 20:01:00

你必须找到你的“红线”的位置,并滚动窗口,使窗口左侧红线的位置是你窗口宽度的一半。

要遵循的简单步骤: 1.从窗口左侧找到线条的相对位置。2.找到窗口的宽度。3.使用scrollLeft方法滚动,使红线左侧的宽度与红线右侧的宽度相同。

​

代码语言:javascript
复制
$(document).ready(function(){
width = $("#myWindow").width();
linePosition = $("#redLine").position().left;
console.log(linePosition);
let scroll= linePosition - (width/2);
console.log(scroll)
$("#myWindow").scrollLeft(scroll);
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myWindow" style="width: 500px; overflow-x: scroll">
    <div style="width: 5000px; height: 100px; background-color:grey;position: relative;">
        <div id="redLine" style="position: absolute; height: 100%; width: 2px; background-color: #EF5350; z-index: 5; left: 45%";></div>
    </div>
</div>

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51705021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档