SVG thay đổi màu khi xoay trong Safari 10


109

Tôi vừa gặp phải một vấn đề rất kỳ lạ chỉ hiển thị trong Safari 10. Tôi có thẻ chơi, hình ảnh svg, đôi khi được xoay vòng bằng cách sử dụng transform:rotate(xdeg).

Thẻ tôi đang sử dụng có hình khối màu đỏ. Khi nó không được xoay hoặc xoay ở các góc vuông, tức là 90, 180, 270, thì nó trông bình thường. Nhưng, bất kỳ góc nào khác ngoài góc đó và mẫu nền chuyển sang màu xanh lam! Tôi vừa nhận được báo cáo về điều này từ một trong những người dùng của mình và chưa bao giờ thấy điều gì kỳ lạ. Các trình duyệt khác đều hoạt động bình thường, Safari 9 thì hoạt động bình thường.

Tôi đoán đây chỉ là một lỗi thực sự kỳ lạ trong Safari 10, nhưng bất kỳ ý tưởng nào về cách khắc phục nó? Tôi đã tạo một bản repro tối thiểu tại:

https://jsfiddle.net/2zv4garu/1/


6
Cân nhắc thêm lỗi WebKit vào trình theo dõi lỗi của họ , nếu bạn cho rằng lỗi này liên quan đến WebKit.
thư giãn

2
Điều này không xảy ra trên Mac Mini kiểu cuối năm 2012 hoặc trên MacBook Pro Retina 2013 của tôi. Mac Mini: imgur.com/zdAZoWV
X-Istence,

2
Không xảy ra trên MacBook Pro Late 11 không màn hình của tôi với phiên bản Safari 10.0 (12602.1.50.0.10)
Dave

Cũng không xảy ra trên Sierra, iMac cuối năm 2015 - imgur.com/a/e2FyS
antonone 22/09/2016

Không thể tái tạo trong Safari trên iOS 10.0.1.
Šime Vidas

Câu trả lời:


79

Thực sự là một lỗi kỳ lạ. Thực hiện chuyển đổi trong gói gphần tử dưới dạng biến đổi SVG không giải quyết được sự cố.

Tuy nhiên, bằng cách thực hiện xoay 3D thay vì 2D, tức là inlineCard.style.transform = 'rotate3d(0,0,1,' + e.currentTarget.value + 'deg)';sẽ giải quyết được sự cố, bạn có thể xem tại đây.

https://jsfiddle.net/qe00s1mg/

nhập mô tả hình ảnh ở đây


32
Cảm ơn, điều đó hoạt động tốt :) Tôi đã tìm ra cách thay đổi màu sắc xảy ra, đó là chuyển các giá trị R và B từ màu tô. Màu là # ff0000 và nó đang chuyển thành # 0000ff. Tôi đã thử với các giá trị khác nhau cho R và B và thấy rằng nó luôn là nghịch đảo. Tuy nhiên giá trị G không thay đổi, thực tế nếu bạn thử màu # 00FF00, màu thẻ sẽ không thay đổi trong quá trình quay. Dù sao, cảm ơn vì giải pháp này, tôi đã đánh dấu câu trả lời này là được chấp nhận.
Einar Egilsson 22/09/2016

19
Vui lòng gửi lỗi tại bugreport.apple.com (hoặc bug.webkit.org) với những chi tiết đó.
Paul Schreiber

15
@EinarEgilsson: ... và điều đó giải thích khá nhiều điều đang xảy ra. Rõ ràng, ai đó đang sử dụng thứ tự byte sai khi hiển thị hình ảnh được xoay.
Ilmari Karonen

3
@PaulSchreiber Trên thực tế, có vẻ như nó đã được sửa, những người có bản dựng mới hơn của Safari 10 dường như không nhận được điều này.
Einar Egilsson

4
@DarioOO Bởi vì đúng một nửa thì tốt hơn là không cố gắng.
jpa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.