2013-06-04 2 views
1

Я разрабатываю сайт, который полагается на плагин jquery ScrollTo для перемещения между страницами по горизонтали. Каждая «страница» представляет собой раздел 100% x 100%, внутри которого находится обертка div, а затем абсолютно позиционированные элементы.jQuery ScrollTo вызывает исчезновение элементов в IE

Это работало на 100% отлично во всех браузерах, кроме IE, конечно. Во всех версиях IE (даже 10) элементы контента исчезают и появляются только в том случае, если они каким-то образом зависают или выбираются.

Here's видео вопроса в действии и на странице Дев в question:

Это действительно странно и непоследовательно, с некоторыми элементами появляются некоторое время, иногда частично, но, как правило, не на всех. Изменение размера окна приводит к появлению только элементов, находящихся в окне просмотра, но не вне его (и если вы прокручиваете назад и назад, они снова появляются). Удаление ScrollTo и использование поведения привязки по умолчанию в порядке, но я ничего не могу сделать, кажется, имеет значение.

Поисковые запросы Google по вопросу абсолютно не изменились.

Основная структура содержания эффективно:

<section id="content"> 
    <div class="mask"> 
     <section id="pagename"> 
      <div class="wrap"> 
       <div></div> 
       <div></div> 
      </div> 
     </section> 
     <section> 
      <div class="wrap"> 
       <div></div> 
       <div></div> 
      </div> 
     </section> 
    </div> 
</section> 

CSS:

#content  {width: 100%; height: 100%; overflow: hidden; } 
#content .mask {width: 800%; height: 100%;} 
section  {position: relative; display: block; width: 12.5%; height: 100%; float: left;} 
.wrap   {position: absolute; display: block; top: 50%; left: 50%; height: 860px; margin-top: -430px; width: 860px; margin-left: -430px; overflow: visible;} 

дивы внутри .wrap затем абсолютно позиционирован вокруг страницы.

Все на самом деле находится в правильном месте, и контент отображается правильно (как только он будет виден). И, похоже, это просто содержимое .wrap, где начинается проблема (установка тестового фона на .wrap показывает, что он не сбой, просто его содержимое).

Если кто-то может пролить свет на то, что вызывает эту проблему, и то, что заставит его вести, было бы глубоко оценено.

Cheers, Натан

+0

У меня была аналогичная проблема с вкладками jqueryui и диалогом. Решением было применить этот атрибут css к различным элементам 'zoom: 1;'. Изменить: найдите IE «HasLayout» в google. Вы найдете некоторые сайты, объясняющие проблему и способы ее решения. – TCHdvlp

+0

Hi TCHdvlp, Я так и думал, и попытался приклеить зум: 1 на все вышеперечисленные элементы (индивидуально и все вместе), и это не имело никакого значения, насколько я видел. Также, чтобы добавить к моим оригинальным заметкам, как ни странно, как только я включу «выбор по элементу» в инструментах разработчика IE, все внезапно исправляет себя. – Nathan

+0

Предоставляет ли инструмент dev некоторую ошибку/предупреждение js. Все ваши стили применяются к вашим элементам? – TCHdvlp

ответ

1

Alrighty, я решил эту проблему.

В другом месте страницы (не в пределах этого раздела), у меня был отдельный div, который был фиксированным. По какой-то причине сохранение этого исправления является тем, что вызывало проблемы IE с прокручиванием других элементов для просмотра. Изменение этого div до абсолютного позиционирования (не проблема в этом случае, так как вся прокрутка была сделана в разделе #content) сделала все возможное.

Я должен добавить, что jQuery ScrollTo не имеет ничего общего с этим (удаление всех сценариев и использование переполнения auto на #content для получения полос прокрутки, показало, что проблема даже произошла без него). Это чисто проблема рендеринга с прокручивающими элементами поверх вершин фиксированных позиционированных элементов.

+0

Я не уверен, что моя проблема была точно такой же, но ваше откровение дало мне отличный ключ и просто применило положение: по отношению к затронутым элементам это решило для меня. Спасибо, что вернулись и документировали, что вы нашли! –

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