2011-01-18 4 views
29

Я делаю сайт с помощью jQuery Mobile.Как сохранить jquery мобильный заголовок и нижний колонтитул исправлены?

Как сохранить верхний и нижний колонтитулы jquery? Я просто хочу только прокрутку контента (как это происходит в iPhone-приложениях), и сохраняйте верхние и нижние колонтитулы сверху и снизу.

Любые предложения?

ответ

28

Добавить этот атрибут в свой заголовок/колонтитул DIV:

 <div data-role="header" data-position="fixed"> 
      <h1>Header Page 1</h1> 
     </div> 

Кроме того, вы можете посмотреть на это: http://jquerymobile.com/test/docs/toolbars/footer-persist-a.html

+2

это не будет работать в iPhone и iPad, но будет работать в Android-приложении. –

+1

Чувак, это сообщение с начала 2010 года (и задолго до финального выпуска 1.0). В iOS 5 на iDevices появилась возможность для фиксированной позиции css (pre iOS 5 позиция была рассчитана jqmobile, исчезла и снова при прокрутке) –

+1

Должен сказать, мои результаты с 'data-position =" fixed "' на BB10 были ... смешанными. Лучше было использовать тег viewport, найденный здесь (http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/How-to-set-up-the-viewport-for-a-BlackBerry -WebWorks-application/ta-p/1943807) - не причудливый JS, основанный на разуме !, но он все равно не 100%. И это в 2013 году. – demaniak

4

проблема, с которой я столкнулся с jquery mobile fixed, заключается в том, что верхний и нижний колонтитулы исчезают. Я предполагаю, что это то, что они исправит в будущем, но в дополнение к iscroll, предложенному Дэном, есть также jquery mobile scrollview и инструментарий для подмигивания. У меня были хорошие результаты с Jquery мобильного Scrollview, но не повезло с iscroll или подмигнув

1) Jquery мобильного Scrollview

2) Wink Инструментарий

+0

Кто-нибудь проверил это на устройстве iOS; потому что для меня экран просто застрял, и когда я продолжаю прокручивать, в конечном итоге панели инструментов все еще исчезают. Я специально говорю о JQuery mobile. – CharlesS

+0

Я использовал jquery mobile scrollview на iOS. Он работал нормально. Сказав это, я в конце концов переключился на Сенча. Производительность JQuery для мобильных устройств была слишком плохой (задержка при каждом нажатии кнопки) и отсутствовали необходимые элементы управления. Возможно, теперь оно улучшилось. Это определенно более интересно программировать. – i8abug

+2

Если вы привязываетесь к событиям «tap» и «touchstart» вместо «click», задержка уходит. – Crashalot

0

Другой способ заключается в использовании http://jquerymobile.com/test/experiments/scrollview/scrollview-direction.html (jquery.mobile.scrollview.js, scrollview.js и easing.js) и поместить данные улиткой = «истина» в странице сНу тега как предложено здесь: scrollview for jQuery mobile tollbars *not* to be fixed.

Хорошо работает для меня до сих пор.

Приветствия,

E

0

Использование iScroll v4. Сохраняйте верхний и нижний колонтитулы фиксированными и прокручивайте только содержимое. iScroll требует обертки DIV и дочерний элемент. В приведенном ниже примере content_items является дочерним div с элементами для прокрутки. Я заметил, что вы не можете комбинировать data-role = "content" и обертку DIV для iScroll в одном HTML-элементе !.

<script type="text/javascript"> 
var myScroll; 

$(document).ready(function() { 

    myScroll = new iScroll('wrapper'); 

}); 

</script> 
<div data-role="page"> 
    <div id="header" data-role="header" data-position="fixed"></div> 
    <div id="content" data-role="content" class="contentcontainer contentsearched"> 
     <div id="wrapper"> 
      <div id="content_items" class="content_items"></div> 
     </div> 
    </div> 
    <div id="footer" data-role="footer" data-position="fixed"> 
     <div data-role="navbar"></div> 
    </div> 
</div> 
0

Я рекомендую вам попробовать последнюю версию jQuery-mobile (1.1.0-rc). он исправил эту ошибку.

имеет вид here

0

Для прошивки 6, 7 и 8, этот хак, кажется, решить эту проблему и вызвать перерисовку, чтобы правильно заменить фиксированный заголовок (с или без панели) на IPod, iPhone и IPad. Примечание. Мы тестируем устройство iOS и добавляем это событие в этом случае *.

if (iOS()) { 
    $(document).on('blur', 'input:not(:submit), select, textarea', function() { 
     var paddingBottom = parseFloat($(".ui-mobile-viewport, .ui-page-active").css("padding-bottom")); 
     $(".ui-mobile-viewport, .ui-page-active").css("padding-bottom", (paddingBottom + 1) + "px"); 
     window.setTimeout(function() { 
      $(".ui-mobile-viewport, .ui-page-active").css("padding-bottom", paddingBottom + "px"); 
     }, 0); 
    }); 
} 

* Тест для прошивки:

var iOS() = function() { 
    var userAgent = window.navigator.userAgent.toLowerCase(); 
    return (/iphone|ipad|ipod/).test(userAgent); 
} 
1

Чтобы включить этот тип элемента панели инструментов, вы применяете данные полноэкранных = «истинный» атрибут и дату-позицию = «фиксированный» атрибут как элементы заголовка и нижнего колонтитула. Рамка также отменит заполнение контейнера контента (ui-content)

<div data-role="header" data-position="fixed" data-fullscreen="true"> 
     <h1>Header Page 1</h1> 
    </div> 
Смежные вопросы