2012-01-26 2 views
0

Я проектирую панель навигации для планшетного сайта. Навигационная панель содержит элементы, отображаемые горизонтально, и я хочу иметь возможность отображать новые элементы с помощью салфетки (вроде потока обложек) без перемещения окна. Это код, я использую в настоящее время (JQuery Mobile):пытается сделать панель навигации для планшета

//Tablet Features 
     $('#navHolder').bind('swipe', 
      function(e) { 
       $('#navHolder').animate({left:thisLeft - 100}); 
      } 
     ); 

Я не думаю, что может вызвать swipe без отключив свитка, но я открыт для любых предложений. Пожалуйста помоги.

+0

Вы можете оставить панель навигации HTML и javascript? – shaun5

ответ

1

Установите родительский контейнер элемента, который вы прокручиваете до overflow : hidden, чтобы не отображались полосы прокрутки. Затем события swipe должны работать нормально, поскольку вы не сможете использовать прокрутку для прокрутки содержимого.

HTML -

<div id="navHolder-container"> 
     <div id="navHolder"> 
      <p>content in here</p> 
     </div> 
    </div> 

CSS -

#navHolder { 
    position : absolute; 
    width : 1000px; 
} 
#navHolder-container { 
    position : relative; 
    overflow : hidden; 
    height : 100px; 
    width : 100%; 
} 

JS -

$(function() { 
    var convert = { 
      swipeleft : '-=100', 
      swiperight : '+=100' 
     }; 
    $('#navHolder-container').bind('swipeleft swiperight', function(e) { 
     $('#navHolder').animate({ left: convert[e.type]}); 
    }); 
}); 

Вот демо: http://jsfiddle.net/B8PQn/1/

+0

@ Jasper - я пробовал это, и даже если переполнение установлено в скрытое, элементы переполнения появляются в новой строке ** под ** другими элементами. Это было бы идеально для вертикальной навигационной панели, но она не работает для горизонтальной. Любые другие идеи? – dopatraman

+0

Внутренний элемент (дочерний элемент контейнера) должен иметь ширину набора, чтобы он не обертывался. Просто начните с предоставления этой большой ширины, как '2000px'. – Jasper

+0

Также убедитесь, что для элемента, который вы хотите оживить, нужно установить 'position: relative' или' position: absolute' (еще лучше), это требование в CSS. Вот вам рабочая демонстрация: http://jsfiddle.net/B8PQn/1/ – Jasper

Смежные вопросы