Как я могу сохранить персонаж на экране при прокрутке и при этом продолжать перемещать его по пути? [закрыто]CSS

Разбираемся в CSS
Ответить
Гость
 Как я могу сохранить персонаж на экране при прокрутке и при этом продолжать перемещать его по пути? [закрыто]

Сообщение Гость »


Это мой вопрос.
Пожалуйста, помогите мне рассчитать прогресс прокрутки, чтобы мой значок пути всегда оставался внутри экрана при прокрутке. Или, если у вас есть другие идеи, дайте мне знать.
Вот мой код:

Код: Выделить всё

  pathIcon.style.offsetPath = `path('${Path_440.getAttribute("d")}')`;
const pathLength = Path_440.getTotalLength();

function clamp(min, val, max) {
return Math.min(Math.max(min, val), max);
}

function updatePath() {
const docElt = document.documentElement;
const pathBox = theFill.getBoundingClientRect();

// calculates scroll progress based on viewport progress
const scrollProgress = clamp(
0,
-pathBox.y / (pathBox.height - docElt.clientHeight),
1
);

pathIcon.style.offsetDistance = `${scrollProgress * 100}%`;

// These lines fill in the dashes as you scroll down.
const drawLength = pathLength * scrollProgress;
const rest = pathLength - drawLength;
theFill.style.strokeDasharray = `${drawLength}px ${rest}px`;
}

updatePath();
window.addEventListener("scroll", () => updatePath());

Код: Выделить всё

 body {
height: 500vh;
background: #f1f1f1;
}
.container {
display: flex;
justify-content: center;
}
#pathIcon {
position: absolute;
inset: 0;
width: 100px;
height: 100px;
offset-rotate: 0rad;
}
.middlePath {
position: absolute;
}
.crossLine {
position: absolute;
}

Код: Выделить всё









[img]/public/pngegg.png[/img]
          width="580"
height="1500"
alt=""
/>





















It looks fine at first glance, but when I scroll, the pathIcon moves too fast and sometimes goes off-screen. Я хочу, чтобы он замедлился или остался неподвижным в середине экрана, но все еще двигался по пути. Это сделает его более плавным и даст лучший обзор пути.
Вот текущее состояние и желаемый результат.
Пожалуйста, помогите мне. Спасибо за все ваши ответы


Источник: https://stackoverflow.com/questions/781 ... ve-it-move
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «CSS»