gpt4 book ai didi

javascript - 当屏幕尺寸发生变化时,向下滚动过程跟踪线无法正常工作,尤其是对于移动设备

转载 作者:行者123 更新时间:2023-11-28 06:55:22 26 4
gpt4 key购买 nike

我正在制作一个流程轨迹动画,向下滚动以显示我网站的步骤(教程)。

我正在使用以下 JavaScript 代码来触发动画。

问题是当屏幕尺寸改变时像素计算出错。动画效果不正常,尤其是移动端。我怎样才能使动画响应。

如图所示,当屏幕尺寸改变时,连接 2 和 3 的 div 行没有连接

$(window).scroll(function (event) 
{

var scroll1 = $(window).scrollTop();
//document.getElementById('test').innerHTML = scroll1;
if( scroll1>1000)
{
$('#step1 #span1').addClass('active');
$('#bar1').addClass('bar');
if(scroll1<=1123)
{
var x=scroll1-1000;
//var bar= document.getElementsByClassName("barblue");
//bar[0].style.height= x+"px";
//$(".bar").height(x);
document.getElementById('bar1').style.height= x+"px";
}
}
else
{
$('#step1 #span1').removeClass('active');
$('#bar1').removeClass('bar');
}

if( scroll1>1123)
{
$('#step2 #span2').addClass('active');
$('#bar2').addClass('bar');
if(scroll1<=1300)
{
var x2=scroll1-1123;
//document.getElementById('scroll').innerHTML = x2;
document.getElementById('bar2').style.height= x2+"px";
}
}
else
{
$('#step2 #span2').removeClass('active');
$('#bar2').removeClass('bar');
}

if( scroll1>1246)
{
$('#step3 #span3').addClass('active');
}
else
{
$('#step3 #span3').removeClass('active');
}

}
);
<div id="container" style="float:left;width:33%;">		


<div id="process-steps">
<div id="step1" style="padding-left:120px;" class="scroll-no"><span id="span1" >1</span></div>

<div style="padding-left:140px;"><div id="bar1" class=""></div></div>

<div id="step2" style="padding-left:120px;" class="scroll-no"><span id="span2">2</span></div>

<div style="padding-left:140px;"><div id="bar2" class=""></div></div>

<div id="step3" style="padding-left:120px;" class="scroll-no"><span id="span3">3</span></div>
</div>

</div>

最佳答案

你可以试试这个:

我不确定

.timeline {
list-style: none;
padding: 20px 0 20px;
position: relative;
}

.timeline:before {
top: 0;
bottom: 0;
position: absolute;
content: " ";
width: 3px;
background-color: #eeeeee;
left: 50%;
margin-left: -1.5px;
}

.timeline > li {
margin-bottom: 20px;
position: relative;
}

.timeline > li:before,
.timeline > li:after {
content: " ";
display: table;
}

.timeline > li:after {
clear: both;
}

.timeline > li:before,
.timeline > li:after {
content: " ";
display: table;
}

.timeline > li:after {
clear: both;
}

.timeline > li > .timeline-panel {
width: 46%;
float: left;
border: 1px solid #d4d4d4;
border-radius: 2px;
padding: 20px;
position: relative;
-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175);
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175);
}

.timeline > li > .timeline-panel:before {
position: absolute;
top: 26px;
right: -15px;
display: inline-block;
border-top: 15px solid transparent;
border-left: 15px solid #ccc;
border-right: 0 solid #ccc;
border-bottom: 15px solid transparent;
content: " ";
}

.timeline > li > .timeline-panel:after {
position: absolute;
top: 27px;
right: -14px;
display: inline-block;
border-top: 14px solid transparent;
border-left: 14px solid #fff;
border-right: 0 solid #fff;
border-bottom: 14px solid transparent;
content: " ";
}

.timeline > li > .timeline-badge {
color: #fff;
width: 50px;
height: 50px;
line-height: 50px;
font-size: 1.4em;
text-align: center;
position: absolute;
top: 16px;
left: 50%;
margin-left: -25px;
background-color: #999999;
z-index: 100;
border-top-right-radius: 50%;
border-top-left-radius: 50%;
border-bottom-right-radius: 50%;
border-bottom-left-radius: 50%;
}

.timeline > li.timeline-inverted > .timeline-panel {
float: right;
}

.timeline > li.timeline-inverted > .timeline-panel:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}

.timeline > li.timeline-inverted > .timeline-panel:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}

.timeline-badge.primary {
background-color: #2e6da4 !important;
}

.timeline-badge.success {
background-color: #3f903f !important;
}

.timeline-badge.warning {
background-color: #f0ad4e !important;
}

.timeline-badge.danger {
background-color: #d9534f !important;
}

.timeline-badge.info {
background-color: #5bc0de !important;
}

.timeline-title {
margin-top: 0;
color: inherit;
}

.timeline-body > p,
.timeline-body > ul {
margin-bottom: 0;
}

.timeline-body > p + p {
margin-top: 5px;
}

@media (max-width: 767px) {
ul.timeline:before {
left: 40px;
}

ul.timeline > li > .timeline-panel {
width: calc(100% - 90px);
width: -moz-calc(100% - 90px);
width: -webkit-calc(100% - 90px);
}

ul.timeline > li > .timeline-badge {
left: 15px;
margin-left: 0;
top: 16px;
}

ul.timeline > li > .timeline-panel {
float: right;
}

ul.timeline > li > .timeline-panel:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}

ul.timeline > li > .timeline-panel:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
}

Refer this demo page

关于javascript - 当屏幕尺寸发生变化时,向下滚动过程跟踪线无法正常工作,尤其是对于移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33543974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com