javascript-在由html和css制成的时间轴中滚动
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-在由html和css制成的时间轴中滚动,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3563字,纯文字阅读大概需要6分钟。
内容图文
![javascript-在由html和css制成的时间轴中滚动](/upload/InfoBanner/zyjiaocheng/660/8ea740402ba44b5b8eb828cfb425a024.jpg)
我正在开发一个Web项目,其中我必须绘制一个包含行和信息的时间线(与Gantt chart相比).基本上,以下几点很重要:
>用户可以及时滚动(向左或向右).
>时间轴可以垂直滚动(滚动浏览各行).
>行名称始终在行本身上可见.
为了清除问题,我创建了以下杰作:
我们可以看到时间线中的行为红色,行名在左侧(橙色),行中的项目为蓝色.因此,将时间轴滚动到右侧将产生以下内容:
名称仍然位于我们可以看到的相同位置,而这正是我的问题:
将项目保持在可水平和垂直滚动的容器内的相同水平位置上的最佳实践是什么?当然,当垂直滚动行时,橙色块也应随之滚动.
但是,嘿!到目前为止,您尝试了什么?
我尝试了几件事,但找不到理想的解决方案:
1)更改left属性
我试着在水平移动时用javascript更改了橙色块的css left属性(用Translate()更改位置并没有太大改变).这在chrome上效果很好,但在IE上(仍然不了解人们为什么使用它)确实很慢,并且位置更新清晰可见.如果您拿着滚动条开始疯狂地滚动,则可以看到橙色框从左到右飞舞.这使我想到了以下想法:
2)你!出去!
我为橙色框制作了一个单独的容器元素,并将其放置在时间线之外,为其提供了绝对位置,并将其放置在时间线的顶部,因此无论用户是否滚动时间线,它都将停留在该位置.结果:外观没有差异,向左和向右滚动都可以完美显示,因为我不必设置橙色框的左侧位置.但是…此解决方案可能适用于水平滚动,但垂直滚动时,橙色框不了解时间轴的垂直位置,因此此解决方案的缺点是:
>必须使用javascript设置橙色框的垂直滚动位置.
>在IE上垂直滚动有点滞后(但比第一种解决方案更平滑且烦人).
>(较小)两个容器的高度必须相同,这意味着(需要时)必须将高度设置两次.
多谢您的协助!
解决方法:
我不认为这正是您想要的,但我想还是应该发布它,因为它与您的解决方案没有多少不同. 2,可能有一些优点.
http://codepen.io/anon/pen/qsfGJ
<div class="container">
<div class="right-column">
<div class="left-column">
<div class="label">Label 1</div>
<div class="label">Label 2</div>
<div class="label">Label 3</div>
<div class="label">Label 4</div>
<div class="label">Label 5</div>
<div class="label">Label 6</div>
<div class="label">Label 7</div>
<div class="label">Label 8</div>
<div class="label">Label 9</div>
<div class="label">Label 10</div>
<div class="label">Label 11</div>
<div class="label">Label 12</div>
<div class="label">Label 13</div>
<div class="label">Label 14</div>
</div>
<div class="row">
<div class="row-label">Row 1</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 2</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 3</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 4</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 5</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 6</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 7</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 8</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 9</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 10</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 11</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 12</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 13</div>
<div class="event"></div>
<div class="event"></div>
</div>
<div class="row">
<div class="row-label">Row 14</div>
<div class="event"></div>
<div class="event"></div>
</div>
</div>
</div>
内容总结
以上是互联网集市为您收集整理的javascript-在由html和css制成的时间轴中滚动全部内容,希望文章能够帮你解决javascript-在由html和css制成的时间轴中滚动所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。