Подскажите как сделать такую бегущую строку?

138
09 сентября 2021, 15:00

Подскажите пожалуйста как сделать бегущую строку как на картинке, которая бежит вокруг элемента, например вокруг картинки. Если можно, чтобы текст задавался с html элемента. Круговое движение бегущей строки, на заднем плане стока немного затухает и бежит она допустим вокруг какой-нибудь картинки. Спасибо.

Answer 1
  1. Берем фразу, бьем по символам включая пробелы.

  2. Каждый символ помещаем в абсолютно позиционированный квадратный div

  3. Располагаем эти квадраты вокруг цилиндра, за счет css 3д трансформаций вот таким образом (вид сверху):

для этого:

  • сдвигаем по Z в отрицательную область - это приблизит div в строну наблюдателя

  • вращаем вокруг оси Y, на угол, посчитанный разбиением целой окружности на кол-во символов

    1. Крутим это все вокруг центра

let chars = 'hello hello hello hello hello hello '.split(''); 
spin.innerHTML = chars.map((c, i) => { 
  return `<div class=char style="--a:${360/chars.length*i}deg">${c}</div>` 
}).join('');
body { 
  perspective: 400px; 
} 
 
.char { 
  animation: rot 20s linear infinite; 
  width: 40px; 
  height: 40px; 
  margin-left: -20px; 
  text-align: center; 
  font-size: 30px; 
  position: absolute; 
} 
 
#spin { 
  margin-left: 50vw; 
} 
 
@keyframes rot { 
  from {transform: rotateY(var(--a)) translateZ(150px)} 
  to   {transform: rotateY(calc(var(--a) - 360deg)) translateZ(150px)} 
}
<div id=spin></div>

READ ALSO
Как реализовать, чтобы данный скрипт срабатывал раз в 6сек.?

Как реализовать, чтобы данный скрипт срабатывал раз в 6сек.?

Как реализовать, чтобы данный скрипт срабатывал раз в 6 сек?

113
C++, Google Tests, утечки макетных объектов и testing::Mock::AllowLeak()

C++, Google Tests, утечки макетных объектов и testing::Mock::AllowLeak()

Я пытаюсь поправить тесты (Google Tests), которые писал не я, и у меня есть несколько вопросов, на которые я не смог найти ответы

112
Нужна помощь с C++

Нужна помощь с C++

Почему выводится адрес, а не числа?

85
C++ std::list использование памяти

C++ std::list использование памяти

Только начинаю работать с std::list в Arduino (компилятор C++ 11) Нужно положить в std::list класс:

103