2013-10-03 8 views
0

Я использую spin.js для показа счетчика при загрузке новой страницы. Поскольку у IE были проблемы с анимацией gif, я использую эту библиотеку. Теперь я узнал, что он не работает на iOS. Вращающийся не появляется вообще. Протестировано:spin.js не отображается на iPhone/iPad

  • iPhone с прошивкой 6.1.3
  • IPad с прошивкой 5.1.1

Он работает в любом браузере для Windows (даже Safari для Windows).

Заголовок:

<script type="text/javascript" src="../js/spin.min.js"></script> 

перед закрытием тела:

<div id ="center" style="position:fixed;top:50%;left:50%"></div> 
<script> 
    var opts = { 
     lines: 13, // The number of lines to draw 
     length: 8, // The length of each line 
     width: 4, // The line thickness 
     radius: 11, // The radius of the inner circle 
     corners: 1, // Corner roundness (0..1) 
     rotate: 0, // The rotation offset 
     direction: 1, // 1: clockwise, -1: counterclockwise 
     color: '#000', // #rgb or #rrggbb or array of colors 
     speed: 1, // Rounds per second 
     trail: 60, // Afterglow percentage 
     shadow: false, // Whether to render a shadow 
     hwaccel: false, // Whether to use hardware acceleration 
     className: 'spinner', // The CSS class to assign to the spinner 
     zIndex: 2e9, // The z-index (defaults to 2000000000) 
     top: 'auto', // Top position relative to parent in px 
     left: 'auto' // Left position relative to parent in px 
    }; 
    var target = document.getElementById('center'); 
    var spinner = new Spinner(opts); 

    $("#select-place input").click(function(){ 
     spinner.spin(target); 
    }); 
    $(window).bind("load", function() { 
     spinner.stop(); 
    }); 
</script> 

Я пытался использовать другой элемент. Здесь он работает. Проблема position:fixed. Я читал, что iOS 5 поддерживает это. Как центрировать прядильщик в середине экрана даже на iOS? Страница не предназначена для мобильных устройств. В основном это настольная версия, но она тоже должна работать для iOS.

ответ

0

Поскольку другое решение не сработало, и я не буду использовать фреймворк, я придумал решение JS. Просто вычислить середину экрана с JS:

jQuery.fn.center = function() { 
    this.css("position","absolute"); 
    this.css("top", Math.max(0, (($(window).height() - $(this).outerHeight())/2) + 
               $(window).scrollTop()) + "px"); 
    this.css("left", Math.max(0, (($(window).width() - $(this).outerWidth())/2) + 
               $(window).scrollLeft()) + "px"); 
    return this; 
} 

$('#center').center(); 

Взятые из ответа from Tony в this post.

Один недостаток: пользователь может прокручиваться от счетчика. Вам нужно что-то, что приспосабливается к прокрутке, например. показано в Fixed positioning in Mobile Safari.

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