2014-12-04 20 views
19

Vì vậy, tôi đang gặp phải vấn đề nhỏ này khi triển khai mã này trên iOS vì tôi không quen với cách iOS hoạt động. Tôi có vòng tròn này mà tôi đang sử dụng trên trang web của tôi và nó hoạt động hoàn hảo trên các trình duyệt và thiết bị Android nhưng khi nói đến iOS nó bị phá vỡ và tất cả các mức độ đến trung tâm. Sẽ rất vui nếu ai đó có thể giúp tôi ra trên này ..Biến đổi không hoạt động trên 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); } 

Cảm ơn ..

+0

Đăng mã của bạn trong câu hỏi – Turnip

+0

Cảm ơn sự giúp đỡ, nhưng tôi đã tự giải quyết nó. –

+0

Vui lòng không phá vỡ các yêu cầu mã bằng cách đặt không mã trong các khối mã. ** Dán mã vào phần nội dung câu hỏi của bạn ** và cung cấp liên kết nếu nó giúp câu hỏi của bạn. – esqew

Trả lời

2

Tìm thấy vấn đề, đó là một điều ngớ ngẩn. Tôi không sử dụng -webkit được hỗ trợ cho iOS. Dưới đây là giải quyết JS Fiddle nếu có ai cần nó ..

.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 đó là cách tốt nhất để đặt phiên bản không có tiền tố cuối cùng. Ví dụ, nếu không, Chrome sẽ sử dụng phiên bản '-webkit-' mặc dù nó không còn cần thiết nữa. Khi tiền tố được sử dụng khi thuộc tính vẫn đang thử nghiệm, phiên bản cuối cùng và phiên bản có tiền tố có thể cung cấp các kết quả khác nhau. – Turnip

+0

@ uʍopǝpısdn Đang thêm '-moz-' và '-o-' cần thiết? Chúng có phải là firefox và opera không? – IcyFlame

44

iOS safari vẫn đòi hỏi các tiền tố trình duyệt cho transform

Duplicate tất cả các biến đổi của bạn và thêm một phiên bản tiền tố -webkit- trước

Ví dụ

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

Working demo

+1

Cảm ơn bạn đã giúp đỡ người bạn đời .. –

+1

Bạn cũng đánh bại tôi :) Bạn nên đánh dấu câu trả lời của mình là chính xác khi bạn được phép – Turnip

+1

Tôi sẽ, cảm ơn .. –

2

Một vấn đề khác có thể xảy ra ở đây (khi iOS có vẻ bỏ qua một biến đổi) là một lỗi trong một số phiên bản iOS, trong đó các vòng quay chính xác là 90 độ sẽ bị bỏ qua.

Giải pháp làm việc cho tôi là sử dụng biến đổi 89,9 độ thay thế (89,9 độ làm việc như mong đợi; 90 độ không tạo ra chuyển động nào cả). Không lý tưởng, nhưng trong trường hợp của tôi sự khác biệt không đáng chú ý.

Các vấn đề liên quan