imko, как я понял, если положительный, то внешний, если отрицательный - внутрь)
Я попробовал, действительно, это очень и очень похоже на желаемое поведение, спасибо большое!
Единственное, сейчас отсекаются элементы в тех случаях, когда scrollY равен максимальному значению (ползунок в самом низу), а высота элемента менее 50% viewport - вот как можно это обыграть - большой вопрос (риторический).
Yokaze, я думаю, что дело в DNS, на ПК (win) у меня прописаны хосты в файле hosts.
А телефон их не видит (мое мнение), следовательно шлет запрос на реальный домен, т. к. он не перехватывается локальными DNS.
tukreb, с теми же калориями спорно - допустим у воды их 0.
Но я стараюсь в миграциях побольше таких полей указывать, где это возможно.
Но благодарю за совет.
tukreb, бывают моменты, когда меню нужно заполнить быстро, а вес и ккал уточнять у персонала, я так понимаю, что если я не буду продавать на сайте, а меню чисто ознакомительное, то можно часть данных и не указывать?)
Но, тем не менее, я благодарю за комментарий, всегда интересно выслушать альтернативу и сравнить с текущим решением, даже если не по теме вопроса.
Ankhena, в этом в том числе сложности, но я подумал и у меня получилось что-то подобное: При скролле вниз:
- выбираем категорию, если блок следующей (ниже стоящей) категории занимает > 50% viewport.
- если несколько категорий с видимостью 100%, то выбираем последнюю в DOM (т. е. нижнюю)
При скролле вверх:
- выбираем категорию, если блок следующей (выше стоящей) категории занимает > 50% viewport.
- если несколько категорий с видимостью 100%, то выбираем первую в DOM (т. е. верхнюю)
При инициализации (scrollY = 0):
- выбирается первая категория в списке
При инициализации (scrollY = center):
- логика работы такая же, как при scroll вниз
При инициализации (scrollY = bottom):
- выбирается последняя категория в списке
Основные проблемы: как реализовать главный кейс: определение, что следующая категория занимает более 50% viewport.
Александр Талалаев, благодарю за комментарий, похоже вы правы, что один кейс это решает - когда запрос без параметров.
Вот так сейчас ведет себя request (см. скрин), отправляю nullablecategory_id, жду, что категория для элемента будет null, а request не дает этого сделать - не пропускает дальше.
Это мое мнение, навскидку, как будто можно сделать проще, без усложнений на пустом месте.
Скорее всего вам просто нужно вместо nullable, сделать sometimes и тогда вы будете валидировать поле, только если оно есть в запросе.
Но это поле может быть nullable тоже. и если не будет передано ни одно поле, то он все равно пойдет в контроллер, а я бы хотел выкинуть ему ошибку уже на этом этапе.
Чисто теоретически, я могу проверить в контроллере: count(array_keys($request->validated())) > 0
Но хотелось это сделать в request и более красивым способом.