вместо blockBounds.width использовал полное значение blockBounds, а именно: blockElement.getBoundingClientRect()
Выглядит как "шило на мыло", но почему-то работает только так
Потому, что в противном случае, все координаты и данные у blockElement всегда по нулям и из-за этого формула расчета позиции кнопки после нажатия лишалась одного из значений
Не могли бы вы быть столь любезны и объяснить, что в действительности меняется, если использовать развернутую запись, а не "забитую" в переменную? Благодарю Вас за помощь :)
Александр, Да, у меня тоже VScode. И да, про комментарии я уже почитал в интернете.
Но! Не могу правильно в проект перенести. Были танцы с бубном, то вообще не работало, то частично. В итоге остановился на таком состоянии, что кнопки нажимаются, цвет добавляется на кнопку, сдвиг происходит, но центр к которому стремятся кнопки это левая граница родителя. Т.е. кнопки при нажатии уезжают за левую стенку первого блока. И прикол в том, что если все мои данные перенести в кодпен, то в нем работает правильно, а в проекте центр убегает к левой границе. Пока не понял, что влияет на такое поведение и следовательно не решил проблему.
Да, я в кодпене писал этот код изначально, но я не понял как это добавить сюда в вопрос. Надо было просто ссылку скинуть? Я подумал если я здесь также разделю весь код на участки типа верстка стили код, то он автоматически как в кодпене скомпилируется и появится визуал, но так не произошло.
Здравствуйте!
Я пытаюсь сделать нечто похожее на смену режима съемки в фото-приложении на андроид. Открываете на телефоне фотоаппарат и там над кнопкой затвора есть режимы: фото, видео, документы, портрет, ночь и т.д. И эти режимы переключаются когда выбранный режим находится в центре экрана, у него меняется цвет надписи и переключается сам режим. И в телефоне скролл этих режимов легко прокручивается в обе стороны и влево и вправо пока крайние элементы не станут в центр чтоб включить свои режимы.
А у меня, в моем коде, так не выходит. Если условно 1ую кнопку или 6ую я нажму, то они не становятся в центр. И никак не могу придумать как такой функционал повторить, вот и решил спросить знатоков :))
Сергей delphinpro, ммм-да? Вы, считаете? нуу, ладно, скорее всего Вы правы и я зря заморачиваюсь. Хорошо, сделаю, как вы посоветовали, но Ваш изначальный ответ пусть останется. в интернете нигде не нашел такого, вдруг кому-то пригодится!!
еще раз Спасибо!!
Спасибо, большое!
По логике все верно, буду пытаться внедрить в свою структуру.
Там надо количество ячеек отслеживать по количеству элементов массива.
Короче, :))) я делаю визуально типа эмулятор экрана мобильного телефона и хотел выводить приложения скаченные в телефон посредством массива кнопок с изображением, соответствующим, каждому приложению и потом в массив добавлять элемент, будто скачал приложение и чтоб кнопка запуска появлялась на экране телефона. И у телефонов (настоящих) нижний ряд кнопок приложений там: контакты, смс, браузер, камера. А выше уже приложения скаченные. конечно, можно было бы отделить эти нижние кнопки и выставить их хардкодом, а уже верхние реализовать массивом и даже со стандартным порядком вывода, но почему-то я решил все приложения под один массив обернуть, и при таком подходе нужно, чтоб четыре первых элемента шли по низу экрана телефона, по гриду получается как раз разметка в обратном порядке. как-то так :))
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
(код из демки)
вместо blockBounds.width использовал полное значение blockBounds, а именно: blockElement.getBoundingClientRect()
Выглядит как "шило на мыло", но почему-то работает только так
Потому, что в противном случае, все координаты и данные у blockElement всегда по нулям и из-за этого формула расчета позиции кнопки после нажатия лишалась одного из значений
Не могли бы вы быть столь любезны и объяснить, что в действительности меняется, если использовать развернутую запись, а не "забитую" в переменную?
Благодарю Вас за помощь :)