Навигация по галерее нарушена только в Safari - PullRequest
0 голосов
/ 20 декабря 2011

Я надеюсь, что кто-то может помочь мне с странной проблемой браузера, с которой я столкнулся. У меня довольно простая галерея, запущенная из библиотеки jQuery Tools, которую я модифицировал (взломал), чтобы получить эффект параллакса на вертикальной прокрутке. Это моя работа в процессе: http://6ft6design.com/_pt02/

Теперь я признаюсь, что являюсь абсолютным новичком в программировании - все, что я делаю, это ищу движущиеся части и стучу по ним, пока не получу то, что хочу. В этом случае все шло отлично: я тестировал в Firefox, Opera, Chrome, IE и даже в мобильном браузере Safari. Все они работают отлично. Проблема в том, что настольная версия Safari (Mac v5.0.5) не работает, и я не могу понять, почему. В частности, навигация, кажется, не полностью реализована. Хотя я все еще могу перемещаться по галерее по вертикали, горизонтальное движение не активируется (хотя, если вы нажмете левую или правую клавишу во время вертикальной прокрутки, она иногда будет немного двигаться горизонтально перед тем, как замерзнуть).

Исходя из того, что я понял, это проблема с командой focus, но нюанс вне меня. Другими потенциальными решениями из Интернета были перемещение вызовов сценариев в конец html-документа (нет) и переход от $ (документ) .ready к window.onload (также нет).

Код ниже. Любая помощь будет принята с благодарностью!

$(document).ready(function() {
    $("#stage").scrollable({
        vertical: true,
        speed: 400,
        keyboard: 'static',
        touch: false,
        onSeek: function(event, i) {
            horizontal.eq(i).data("scrollable").focus();
        }
    }).navigator("#main_nav");
    var horizontal = $(".scrollable").scrollable({ 
        circular: false, 
        speed: 400, 
        next: ".scrollable", 
    }).navigator(".sub_nav");
    horizontal.eq(0).data("scrollable").focus();
});

$(function() {
    $("#stageBG").scrollable({
        vertical: true,
        speed: 600,
        touch: false,
        keyboard: 'static',
    }).navigator("#main_nav");
});

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Я наконец нашел ключ в работах: у меня на одном из моих слайдов была запущена анимация SWF, и по какой-то причине это приводило к тому, что последняя версия Safari зависала в некоторых частях галереи. Решение: нет swfs.

1 голос
/ 20 декабря 2011

В частности, навигация выглядит не полностью реализованной.Хотя я все еще могу перемещаться по галерее по вертикали, горизонтальное движение не активируется (хотя, если вы нажмете левую или правую клавишу во время вертикальной прокрутки, она иногда будет немного двигаться горизонтально перед тем, как замерзнуть).

1) В Safari, когда я нажимаю мышь влево / вправо, я получаю всплывающее сообщение о том, что я должен использовать стрелки влево / вправо на клавиатуре.Таким образом, ваша «ошибка», похоже, именно так и должна «работать».Это как какой-то непонятный вариант, который вы забыли выбрать в jQuery Tools, отсутствует какая-то необходимая разметка jQuery Tools или еще одна проблема с jQuery Tools.

2) Во-вторых, вы используете jQuery Tools от Flowplayer.ИМХО, я бы держался от этого подальше ... это полный кусок мусора.Строка тега jQuery "меньше писать, делать больше" ... Строка тега jQuery Tools должна быть "делать меньше, писать больше ... намного больше" .Со всеми замечательными плагинами jQuery Scroller, я нашел бы один, требующий меньше разметки, более совместимый и лучше поддерживаемый.Более года jQuery Tools были несовместимы с IE9, и в течение 6 месяцев разработчик не мог найти ни одного программиста, который бы хотел принять участие в проекте, чтобы поддержать проект.Попробуйте что-то вроде Nivo Slider .Это будет легче настроить и понять.

Прочтите эту замечательную статью и все ее комментарии, чтобы понять больше о том, что я говорю.Это старая статья, но основные идеи и замечания по-прежнему актуальны.

Серьезно, jQuery Tools абсолютно не похож на любой другой плагин jQuery.Требуется несколько минут, чтобы установить любой плагин jQuery с несколькими базовыми опциями, где для написания всей разметки HTML / CSS, необходимой для того, чтобы инструменты jQuery были близки, требуются часы на часы.Просматривая форумы Flowplayer, вы обнаружите множество мелких неприятных вопросов, таких как ваша, и вы увидите, что разработчик появляется на короткое время шесть месяцев назад, единственный раз в году.Вы действительно хотите использовать плагин в течение длительного времени, если разработчик публично заявил, что его интересы находятся в другом месте?

3) У вас более ста ошибок проверки HTML, включая некоторые открытые теги <p>.

http://validator.w3.org

Устранение этих ошибок поможет вам устранить неполадки и свести к минимуму проблемы между браузерами.Хотя они, вероятно, не имеют никакого отношения к вашим текущим проблемам, которые, как я полагаю, вызваны или укоренились в jQuery Tools.

4) Наконец, это чисто семантическая проблема.$(function() { }); точно так же, как $(document).ready(function() { });.Кроме того, вам не нужно дублировать его.Все на странице можно обернуть в одну функцию готовности DOM ($(document).ready(function() { });)

Редактировать:

5) Я еще раз взглянул на ваш сайт.Я использую Safari 4 Mac и теперь вижу ваши точки горизонтальной навигации.Это работает нормально для меня.Если у вас возникла эта проблема только в Safari 5, я поставлю все, что у меня есть, что это не проблема Safari 5, а еще одна ошибка или несовместимость jQuery Tools.

Вы также используете последнюю версиюjQuery (1.7.1).Конечно, вы понимаете, что последняя стабильная версия jQuery Tools (1.2.6) была написана для jQuery 1.4.2 и официально поддерживает только jQuery 1.6.4.В jQuery 1.7 произошли серьезные изменения.Что происходит, когда вы понижаете jQuery до версии 1.4.2 или 1.6.4?

...