В смысле - подергивание? Если скроллировать медленно - то сначала логотип уползает, потом выплывает уже fixed - это и есть подергивание ? Делай его фиксированным не на 100, на поменьше, на 20 - отступ хидера в стартовом положении.
Кнопки абсолютно позиционированы? Попробуй писать в стилях кнопки вот такое/
Считаем, что (240, 200) - координаты кнопки 1, 300 и 450 -высота и ширина картинки, для которой кнопки расположены правильно.
https://codepen.io/ksnk/pen/vYoWwgQ
Если подвигать размером результата - будет видно, что кнопка пытается остаться "на месте".
Правда видно также, что в калькуляции неплохо бы учитывать размер самой кнопки
В смысле - нужно увеличивать длину отрезка, не меняя угол наклона ?
Вектор задается парой значений. Разница координат X и разница координат Y отрезка. Соответственно, увеличивать-уменьшать - это изменять обе координаты одновременно, пропорционально вектору.
Собственно и вся наука. Тригонометрия не нужна, в смысле - для решения нужна, наверное, но результат достижим умножением-делением...
многоточие тут - это такая же кнопка как и обычная, с числом. Свипер переходит на тот слайд, по какой по порядку кнопке произошел клик. По этому я некоторые кнопки скрываю стилем, чтобы они оставались в верстке и не мешали свиперу считать, что мир устроен хорошо. Так получается, что многоточие - это следующая или предыдущая по порядку кнопка. Почему она не работает в VS Code - не знаю.
Чтобы выводить разное количество "видимых" кнопок - нужно посмотреть, сколько реально кнопок вмещается в окно вывода. Нужно читать документацию свипера, чтобы понять сколько столбиков слайдера сейчас демонстрируется или явно вычислять размеры при рендеринге.
Ссылка на fex.net у меня не открывается.
Сейчас, если уменьшить размер экрана до появления 2 столбцов вместо 3-х, должен появится номер 17 вместо 16. Я там неправильно вычислял total - общее количество элементов, сейчас должно быть нормально.
https://codepen.io/ksnk/pen/MWNjMQV?editors=1111
Я там много поменял, сравнивай сам. Лишнее повыкидывал. Возможно, нужно скрывать не показываемые кнопки как-то более прилично, чем display:none!important, но так сработало.
Без JS никак.
На window.onscroll вешаешь изменение класса заголовка, заголовок в этом классе выкидывает ненужные элементы (делает скрытыми) и получает position: fixed; top: 0.
Если значение window.scrollTop достаточно небольшое (размер заголовка в "нормальном положении"), то класс заголовка снимаем - заголовок становится нормальным.
Ну, тупо же. Задача решается почти на коленке, без функции расстояния.
Мат. рассуждения:
Берем 2 точки, рисуем вокруг них сферу с указанным расстоянием между этими точками и нужной нам. Пересекаются сферы в окружности. Ее формула выводится на бумажке. - тоже формула.
Проектируем перепендикулярно плоскости третью точку в плоскость , в которой располагается окружность, пересчитываем расстояние и получаем плоскую картинку про пересечение 2-х окружностей. Не более 2х ответов.
В какое место нужно будет применять функцию вычисления расстояния - я не вижу.