Привет всем! У меня возникла проблема с изменением стилей кнопки в jQuery Mobile. Я использую нестандартный заголовок страницы с логотипом, поэтому он выше обычного.\n\nМне нужно переместить кнопку “Назад” в центр по вертикали. Я пробовал разные варианты JavaScript, например:\n\njavascript\n$(document).ready(function(){\n $(".кнопка-назад").css("отступСверху", "30px");\n});\n
\n\nНо ничего не работает. Также пробовал менять селекторы и убирать обертку ready(). Как правильно изменить стили этой кнопки?\n\nБуду благодарен за любую помощь!
Скорее всего проблема в селекторе. jQuery Mobile использует свою систему классов и атрибутов для стилизации. Попробуй так:
$(‘[data-role=“button”][data-rel=“back”]’).css(‘margin-top’, ‘30px’);
Если не сработает, можно попробовать отложить выполнение до полной загрузки фреймворка:
$(document).on(‘pagecreate’, function() {
$(‘[data-role=“button”][data-rel=“back”]’).css(‘margin-top’, ‘30px’);
});
Если и это не поможет, возможно придется переопределить стили в CSS с !important.
слушай, я тоже сталкивался с такой проблемой. jquery mobile иногда бывает капризным) попробуй использовать !important в css стилях, это часто помогает перебить встроенные стили:
.ui-btn-left {
top: 50% !important;
transform: translateY(-50%) !important;
}
если и это не сработает, можно попробовать добавить небольшую задержку перед применением стилей:
setTimeout(function() {
$(‘.ui-btn-left’).css({
‘top’: ‘50%’,
‘transform’: ‘translateY(-50%)’
});
}, 100);
надеюсь, это поможет решить твою проблему! дай знать, если что-то еще понадобится
Возможно, проблема в том, что jQuery Mobile перезаписывает стили после загрузки. Попробуй использовать событие ‘pageshow’:
$(document).on(‘pageshow’, function() {
$(‘.ui-btn-left’).css(‘top’, ‘50%’).css(‘transform’, ‘translateY(-50%)’);
});
Это должно выровнять кнопку по вертикали. Если не сработает, можно попробовать задать стили напрямую через CSS, перезаписав стандартные классы jQuery Mobile.