Я использую spin.js для показа счетчика при загрузке новой страницы. Поскольку у IE были проблемы с анимацией gif, я использую эту библиотеку. Теперь я узнал, что он не работает на iOS. Вращающийся не появляется вообще. Протестировано с помощью:
Он работает над каждым браузером для 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.
Поскольку другое решение не сработало, и я не буду использовать фреймворк, я придумал решение 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();
Взято из ответа Тони в этом посте.
Один недостаток: пользователь может прокручивать прочь от счетчика. Вам потребуется что-то, что приспосабливается к прокрутке, например, показано в разделе "Фиксированное позиционирование в Mobile Safari".