2014-12-04 3 views
19

Итак, я столкнулся с этой небольшой проблемой, реализующей этот код на iOS, потому что я не знаю, как работает iOS. У меня есть этот круг, который я использую на своем веб-сайте и прекрасно работаю над браузерами и устройствами Android, но когда дело доходит до iOS, он ломается, и вся степень приходит в центр. Я буду рад, если кто-то может помочь мне на этом ..Преобразование не работает на IOS

HTML-

<div class='circle-container'> 
    <div class="center"> Center </div> 
    <div class="deg90">1</div> 
    <div class="deg315">2</div> 
    <div class="deg0">3</div> 
    <div class="deg110">4</div> 
    <div class="deg135">5</div> 
    <div class="deg180">6</div> 
    <div class="deg225">7</div> 
</div> 

CSS-:

.circle-container { 
    position: relative; 
    width: 15em; 
    height: 14em; 
    padding: 2.8em; 
    /*2.8em = 2em*1.4 (2em = half the width of a link with img, 1.4 = sqrt(2))*/ 
    border: dashed 0px; 
    border-radius: 50%; 

} 
.circle-container > a { 
    display: block; 
    text-decoration: none; 
    position: absolute; 
    top: 50%; left: 50%; 
    width: 4em; height: 4em; 
    margin: -2em; 

    text-align: center; 
} 

.circle-container div { 
    display: block; 
    text-decoration: none; 
    position: absolute; 
    top: 50%; left: 50%; 
    width: 4em; height: 4em; 
    margin: -2em; 
    text-align: center; 
} 
.circle-container img { display: block; width: 100%; height:320px; position:absolute; margin-left:-25px; margin-top:15px;} 
.deg0 { transform: translate(5.2em); } /* 12em = half the width of the wrapper */ 
.deg45 { transform: rotate(45deg) translate(5.4em) rotate(-45deg); } 
.deg90 { transform: rotate(-90deg) translate(5em) rotate(90deg); } 
.deg110 { transform: rotate(45deg) translate(5em) rotate(-45deg); } 
.deg135 { transform: rotate(135deg) translate(5em) rotate(-135deg); } 
.deg180 { transform: translate(-5em); } 
.deg225 { transform: rotate(225deg) translate(5em) rotate(-225deg); } 
.deg315 { transform: rotate(315deg) translate(5em) rotate(-315deg); } 

Спасибо ..

+0

Отправьте свой код в свой вопрос – Turnip

+0

Спасибо за помощь, но я решил это самостоятельно. –

+0

Пожалуйста, не обходите требования кода, помещая некод в кодовые блоки. ** Вставьте код в тело вашего вопроса ** и поставьте ссылку, если это поможет вашему вопросу. – esqew

ответ

2

Нашли проблему, это было глупо. Я не использовал -webkit, который поддерживается для iOS. Ниже решаемая JS Fiddle если кто нуждается в ней ..

.circle-container { 
    position: relative; 
    width: 15em; 
    height: 14em; 
    padding: 2.8em; 
    /*2.8em = 2em*1.4 (2em = half the width of a link with img, 1.4 = sqrt(2))*/ 
    border: dashed 0px; 
    border-radius: 50%; 

} 
.circle-container > a { 
    display: block; 
    text-decoration: none; 
    position: absolute; 
    top: 50%; left: 50%; 
    width: 4em; height: 4em; 
    margin: -2em; 

    text-align: center; 
} 

.circle-container div { 
    display: block; 
    text-decoration: none; 
    position: absolute; 
    top: 50%; left: 50%; 
    width: 4em; height: 4em; 
    margin: -2em; 
    text-align: center; 
} 
.circle-container img { display: block; width: 100%; height:320px; position:absolute; margin-left:-25px; margin-top:15px;} 
.deg0 { 
    transform: translate(5.2em); 
    -webkit-transform: translate(5.2em); 
    -ms-transform: translate(5.2em); 
} /* 12em = half the width of the wrapper */ 
.deg45 { 
    transform: rotate(45deg) translate(5.4em) rotate(-45deg); 
    -webkit-transform: rotate(45deg) translate(5.4em) rotate(-45deg); 
    -ms-transform: rotate(45deg) translate(5.4em) rotate(-45deg); 
} 
.deg90 { 
    transform: rotate(-90deg) translate(5em) rotate(90deg); 
    -webkit-transform: rotate(-90deg) translate(5em) rotate(90deg); 
    -ms-transform: rotate(-90deg) translate(5em) rotate(90deg); 
} 
.deg110 { 
    transform: rotate(45deg) translate(5em) rotate(-45deg); 
    -webkit-transform: rotate(45deg) translate(5em) rotate(-45deg); 
    -ms-transform: rotate(45deg) translate(5em) rotate(-45deg); 
} 
.deg135 { 
    transform: rotate(135deg) translate(5em) rotate(-135deg); 
    -webkit-transform: rotate(135deg) translate(5em) rotate(-135deg); 
    -ms-transform: rotate(135deg) translate(5em) rotate(-135deg); 
} 
.deg180 { 
    transform: translate(-5em); 
    -webkit-transform: translate(-5em); 
    -ms-transform: translate(-5em); 
} 
.deg225 { 
    transform: rotate(225deg) translate(5em) rotate(-225deg); 
    -webkit-transform: rotate(225deg) translate(5em) rotate(-225deg); 
    -ms-transform: rotate(225deg) translate(5em) rotate(-225deg); 
} 
.deg315 { 
    transform: rotate(315deg) translate(5em) rotate(-315deg); 
    -webkit-transform: rotate(315deg) translate(5em) rotate(-315deg); 
    -ms-transform: rotate(315deg) translate(5em) rotate(-315deg); 
} 
+4

FYI Лучше всего использовать последнюю версию с префиксом. Если нет, например, Chrome будет использовать версию '-webkit-', даже если она больше не требуется. Поскольку префиксы используются, когда свойство все еще экспериментально, окончательная версия и префиксная версия могут давать разные результаты. – Turnip

+0

@ uʍopǝpısdn Добавляет '-moz-' и '-o-' необходимо? Являются ли они для firefox и opera, соответственно? – IcyFlame

44

iOS safari все еще требует префиксов браузера для transform

продублировать все ваши преобразования и добавить -webkit- приставкой версию перед

Пример

.deg0 { 
    -webkit-transform: translate(5.2em); 
    transform: translate(5.2em); 
} 

Working demo

+1

Благодарим вас за помощь помощнику. –

+1

Вы тоже меня избили :). Вы должны отметить свой ответ как правильный, когда вам разрешат – Turnip

+1

Да, спасибо, спасибо .. –

2

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

Решение, которое сработало для меня, состояло в том, чтобы вместо этого использовать преобразование 89,9 градусов (89,9 градусов работало, как и ожидалось, 90 градусов не приводило к вращению вообще). Не идеально, но в моем случае разница не была заметна.

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