2014-09-05 7 views
8

मेरे पास कुछ कोड है, हाल ही में, सीएसएस रूपांतरणों का समर्थन करने वाले सभी ब्राउज़रों पर काम किया है। यह नवीनतम क्रोम (37) में तोड़ दिया। मुझे मुद्दा मिला। किसी तत्व की गणना की गई शैली से परिवर्तन अन्य तत्वों द्वारा स्वीकार नहीं किया जाता है।घुमाएं (90 डिग्री) क्रोम में ट्रांसट्रॉर्म का उपयोग करके लागू नहीं किया जा रहा है 37

एचटीएमएल

<div class="one">One</div> 
<div class="two">Two</div> 
<span></span> 

सीएसएस

div { 
    width: 100px; 
    height: 100px 
} 

.one { 
    background-color: red; 
    transform: rotate(90deg); 
} 

.two { 
    background-color: blue 
} 

जावास्क्रिप्ट

var oneStyle = window.getComputedStyle(document.querySelector('.one')); 
var oneTransform = oneStyle.transform; 
document.querySelector('span').innerHTML = 'Tranform value is: ' + oneTransform; 
var twoStyle = document.querySelector('.two').style; 
twoStyle.transform = oneTransform; 

यहाँ एक फिडल है: 0,123,

मुद्दा यह है कि दूसरा (नीला) तत्व पहले (लाल) तत्व के रूप में समान नहीं होता है, भले ही मैंने इसे जावास्क्रिप्ट में बताया हो।

यह मेरे लिए एक बग जैसा दिखता है। क्या यह?

संपादित करें: मेरा वास्तविक कोड प्रत्येक ब्राउज़र में काम कर रहा था लेकिन नवीनतम क्रोम, लेकिन यह मेरे ब्राउज़र में सभी नमूना कोड ब्रेक दिखाई देता है। मैं अभी भी समझना चाहता हूं कि उपर्युक्त समस्या क्यों होती है।

संपादित 2: इसे केवल क्रोम 37 में तोड़ने के लिए मिला। मेरा अनुमान है कि यह वैज्ञानिक नोटेशन पसंद नहीं है; लेकिन फिर गणना की शैली क्यों होगी?

+1

दिलचस्प - 45 डिग्री के मूल्य का उपयोग करना काम करता है। 90deg का मान विफल रहता है: [उदाहरण fiddle] (http://jsfiddle.net/0v8v2xd7/4/) – dc5

+0

बीटीडब्ल्यू: उपरोक्त नया कोड सफारी संस्करण 7.0.6 (9537.78.2) पर विफल रहता है - आपको संपत्ति का उपयोग करने की आवश्यकता है 'ट्रांसफॉर्म' के बजाय 'वेबकिट ट्रान्सफॉर्म' – dc5

+0

क्रोम भी वेबकिट का उपयोग नहीं करता है? –

उत्तर

1

यह एक आम समस्या है, इसी तरह की त्रुटियां क्रोम और अन्य विक्रेताओं के पुराने संस्करणों के साथ भी होती हैं।

सामान्य ठीक आंशिक रूप से, या तो रोटेशन कुछ करने के लिए की तरह 89.9deg या बल GPU रेंडरिंग रोटेशन के अलावा translateZ(1px) की तरह कुछ करने से बदलने के लिए हाशेम mentioned के रूप में, है। Demo। भविष्य में हम will-change संपत्ति

का उपयोग कर इस पर भी बल दे सकते हैं क्योंकि ऐसा इसलिए है क्योंकि ब्राउज़र को कुछ चीजों को प्रस्तुत करने में परेशानी होती है और 90 डिग्री घुमाए गए तत्वों को प्रतिपादित करना उन चीजों में से एक है। कभी-कभी उन्हें थोड़ी मदद की ज़रूरत होती है :)

+0

स्वीकार कर रहे हैं क्या आप यह समझा सकते हैं कि ब्राउज़र को इसे छोड़ने का कारण क्यों है।आपने जो कहा है उसके आधार पर, मुझे उम्मीद है कि यह कुछ भी करने के बजाय एलियासिंग के साथ प्रस्तुत करने की उम्मीद नहीं करेगा। – acbabis

+0

यह ऐसा कुछ है जो क्रोम के साथ आम है कि वे ठीक नहीं करते हैं। सबसे अधिक संभावना स्रोत कोड को देखे बिना इसे समझाने का कोई अच्छा तरीका नहीं है –

संबंधित मुद्दे