2010-11-22 7 views
1

Я пытаюсь создать плагин jQuery для мобильного сайта, который превращает контейнер div в прокручиваемый контейнер. Я делаю это, обертывая всех детей, которые находятся внутри контейнера div в другом контейнере div, который абсолютно позиционируется. Затем я изменяю верхний или левый CSS-стили внутри div, чтобы имитировать перемещение текста вверх и вниз или влево и вправо. Я использую прослушиватели событий событий, чтобы определить, когда нужно перемещать прокручивающийся div.jQuery Прокручиваемый Div для мобильных сайтов

Однако у меня возникли проблемы с установкой ширины() моей внутренней прокрутки div. Вот пример кода:

myObj.ready(function(){ 
myObj.css({ 'position' : 'relative', 'overflow' : 'hidden' }).wrapInner('<div id="scrollCntr">'); 
$('#scrollCntr').prepend("<img src='scrollBar.png' id='scrollBar' class='horizontal'"); 
$('#scrollCntr').height(myObj.height()); 

if (config.width <= 0) { 
    $('#scrollCntr').children().each(function(){ 
     if ($(this).css('display') == 'inline' || $(this).css('float') == 'left' || $(this).css('float') == 'right') { 
      totalWidth += $(this).width(); 

      for(var i = 0; i < boxProps.length; i++) 
       if ($(this).css(boxProps[i]) != "") 
        totalWidth += parseInt($(this).css(boxProps[i]).replace(/px/i, '').replace(/em/i, '').replace(/pt/i, '')); 
     } 
    }); 
} else { 
    totalWidth = config.width; 
} 

console.log(totalWidth); 
$('#scrollCntr').width(totalWidth); 
console.log($('#scrollCntr').width()); 

});

В этом случае для конфигурации config.width установлено значение 719, а myObj - это прокрутка контейнера. Я не совсем уверен, в чем проблема. У меня не было никаких проблем с этим в моей демонстрации, когда у моих детей были элементы, где были только изображения, но когда я применил их на своем мобильном сайте, где у детей были элементы, где были квадраты div, у него были проблемы. Возможно, элементы детей не загружаются вовремя? Но это не объясняет, почему я не могу установить ширину прокрутки div. Его определенно загружают. Я понятия не имею, в чем проблема ...

+0

Я думаю, что я узнал, что эта проблема. Контейнер контейнера установлен для отображения: none до тех пор, пока пользователь не примет определенное действие. Поэтому он может устанавливать ширину, но не может получить эти ширины. Есть ли способ добавить обработчик события для прослушивания, когда отображается мой контейнер div (display: block)? – 2010-11-22 17:21:43

ответ