2014-12-04 19 views
19

Więc mam do czynienia z tym małym problemem zaimplementować ten kod na iOS, ponieważ nie jestem zaznajomiony z systemem iOS. Mam ten krąg, którego używam na mojej stronie internetowej i który działa perfekcyjnie w przeglądarkach i urządzeniach z Androidem, ale jeśli chodzi o iOS, to zepsuje się i wszystkie stopnie się znajdą. Będę zadowolony, jeśli ktoś może mi pomóc na ten jeden ..Transformacja nie działa na 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); } 

Dzięki ..

+0

Wpisz swój kod w swoje pytanie – Turnip

+0

Dzięki za pomoc, ale rozwiązałem ją samodzielnie. –

+0

Nie należy ominąć wymagań dotyczących kodu, umieszczając kod w blokach kodu. ** Wklej kod w treści pytania ** i podaj link, jeśli pomoże ci to w zadaniu. – esqew

Odpowiedz

2

znaleźć problem, to było głupie. Nie użyłem -webkit, który jest obsługiwany dla iOS. Poniżej jest rozwiązany JS Fiddle jeśli ktoś go potrzebuje ..

.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 Najlepszą praktyką jest umieszczenie wersji nieprefiksowanej jako ostatniej. Jeśli nie, Chrome użyje na przykład wersji '-webkit-', nawet jeśli nie jest już wymagana. Ponieważ prefiksy są używane, gdy właściwość jest nadal eksperymentalna, ostateczna wersja i wersja z prefiksem może dostarczyć różnych wyników. – Turnip

+0

@ uʍopǝpısdn Czy konieczne jest dodanie '-moz-' i '-o-'? Czy to odpowiednio do firefoxu i opery? – IcyFlame

44

iOS safari nadal wymaga przedrostki przeglądarek dla transform

Duplikat wszystkich swoich przekształca i dodać -webkit- wersję przedrostkiem przed

przykładu

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

Working demo

+1

Dziękuję za pomoc partnerowi .. –

+1

Ty też mnie pobiłeś :). Powinieneś oznaczyć swoją odpowiedź jako poprawną, kiedy masz pozwolenie. – Turnip

+1

Tak, będę, dzięki. –

2

Innym możliwym problemem tutaj (gdy iOS wydaje się ignorować transformację) jest błąd w niektórych wersjach systemu iOS, w którym obrót o dokładną wielokrotność 90 stopni jest ignorowany.

Rozwiązaniem, które zadziałało dla mnie było użycie transformacji 89,9 stopni (89,9 stopnia działało zgodnie z oczekiwaniami, 90 stopni nie wytwarzało żadnego obrotu). Nie idealne, ale w moim przypadku różnica nie była zauważalna.

Powiązane problemy