2013-05-09 6 views
6
में काम नहीं कर

मैं बस jQuery में RGBA() में गड़बड़ी आईई 8RGBA() IE8

मैं इस राशि का उपयोग कर अब तक के साथ अटक:

$('.set').click(function (e) { 
     var hiddenSection = $('div.hidden'); 
     hiddenSection.fadeIn() 
     .css({ 'display': 'block' }) 
     .css({ width: $(window).width() + 'px', height: $(window).height() + 'px' }) 
     .css({ top: ($(window).height() - hiddenSection.height())/2 + 'px', 
      left: ($(window).width() - hiddenSection.width())/2 + 'px' 
     }) 
     .css({ 'background-color': 'rgba(0,0,0,0.5)' }) //Problem here in IE8 
     .appendTo('body'); 
     $('span.close').click(function() { $(hiddenSection).fadeOut(); }); 
}); 

यह सब अन्य ब्राउज़रों में काम करता है, डॉन पता नहीं क्यों आईई 8 में विफल रहा है मुझे यह त्रुटि मिली!

Invalid property valuejquery.min.js में।

किसी भी मदद की बहुत सराहना की जाती है!

धन्यवाद

+2

आरजीबीए आईई 8 में काम नहीं करेगा क्योंकि यह सीएसएस के लिए नया है। आप एक पीएनजी 24 का उपयोग कर सकते हैं जो थोड़ा पारदर्शी है, यह आईई 8 – Andrew

+3

में काम करेगा भविष्य के लिए: http://caniuse.com/ वास्तव में इसके साथ बहुत मदद करता है। –

उत्तर

10

सरल उत्तर: IE8 आरजीबीए गुणों का समर्थन नहीं करता है। यह केवल आरजीबी के बारे में जानता है।

आरजीबीए समर्थन केवल आईई 9 में जोड़ा गया था।

अन्य पुराने ब्राउज़र में भी आरजीबीए के लिए समर्थन नहीं हो सकता है। हालांकि, ऐसे पुराने ब्राउज़र नहीं हैं जो अभी भी IE8 के अलावा अन्य उपयोग में हैं।

  • ऐसे CSS3Pie के रूप में एक polyfill का उपयोग करें:

    कुछ तरीके आप इस के आसपास काम कर सकता है। यह आपको अपने सीएसएस में आरजीबीए पृष्ठभूमि रंग निर्दिष्ट करने की अनुमति देगा। आप अभी भी जेएस कोड में इसका उपयोग करने में सक्षम नहीं होंगे क्योंकि आपके पास यह है, लेकिन आप इससे निपटने के लिए कक्षा बदल सकते हैं।

  • यह पता लगाने के लिए आधुनिक ब्राउज़र जैसे टूल का उपयोग करें कि ब्राउजर इस सुविधा का समर्थन करता है या नहीं, और यदि यह नहीं करता है तो विभिन्न कार्यक्षमता प्रदान करता है।

  • पारदर्शिता प्रभाव प्राप्त करने के लिए IE8 की -ms-filter शैली का उपयोग करें। यह आपको अस्पष्टता सहित विशेष प्रभावों की एक श्रृंखला सेट करने की अनुमति देता है। यह एक गैर मानक आईई सुविधा है, और आईई 9/10 में मानक सीएसएस द्वारा प्रतिस्थापित किया गया है, लेकिन अभी भी पुराने आईई संस्करणों के लिए कुछ मामलों में उपयोगी है।

  • अपनी पृष्ठभूमि के रूप में अल्फा चैनल के साथ एक छोटी पीएनजी छवि का उपयोग करें। इन दिनों एक सादे रंग पृष्ठभूमि के लिए पृष्ठभूमि छवि का उपयोग करने के लिए शर्म की बात है, लेकिन यह परिणाम आप सभी ब्राउज़रों में देख रहे परिणाम प्राप्त करेंगे।

+0

सही। मैं सोचता हूं। ओपी rgba() का उपयोग कर सकता है और साथ ही ढाल संपत्ति के लिए आईई विकल्प? फ़िल्टर: प्रोजेड: DXImageTransform.Microsoft.gradient (startColorstr = # वालर, endColorstr = # वालर); – Fico

+0

IE8 (विफल), _ मार्च 1 9, 200 9 जारी किया गया। एफएफ 3 (काम करता है), _ जून 17, 2008_ जारी किया गया। सफारी 3 (काम करता है), _June 11, 2007_ जारी किया गया। Google क्रोम (कोई भी, काम करता है), _September 2, 2008_ जारी किया गया। ([स्रोत] (http://css-tricks.com/rgba-browser-support/)) –

+0

@ पॉल्स। - वाह, क्रोम वास्तव में पुराना है? यह कल की तरह लगता है। हम्म, अब आपने * मुझे * पुराना महसूस किया है :-( – Spudley

0

आपके पास एक टाइपो है। यह होना चाहिए:

rgba(0,0,0,0.5) 

आप 'ए' भाग खो रहे थे।

हालांकि, मुझे यकीन नहीं है कि IE8 rgba() का समर्थन करता है ... फिर फिर, jQuery के लिए संभवतया एक रैपर है?

सुरक्षित होने के लिए, मैं एक पृष्ठभूमि छवि को पीएनजी प्रारूप में सेट करने की कोशिश करता हूं जिसमें पारदर्शिता है।

.css({ 'background-image': 'http://example.com/myimage.png' }) 

माइकी।

+0

मैंने प्रश्न संपादित किया :) संकेत देने के लिए धन्यवाद। –

+0

आरजीबीए के लिए कोई आईई 8 समर्थन नहीं। –

5

`rgba ie8 द्वारा समर्थित नहीं है।

हालांकि, i में पारदर्शिता के लिए एक चाल है।e8

filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F000000,endColorstr=#7F000000); 

पहले 2 #7F000000 के अंकों अस्पष्टता कर रहे हैं और अगले 6 अंक हेक्सा रंग कोड है।

.css({ 'background-color': 'rgba(0,0,0,0.5)' }) //Problem here in IE8 
.css({'filter' : 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#50000000,endColorstr=#50000000);'}) //IE Fallback 

सूत्रों का कहना है: http://css-tricks.com/rgba-browser-support/

संपादित करें: के बाद डेरेक हेंडरसन टिप्पणी, मैं कोड नहीं लिखा जाएगा, लेकिन

7f 50% के बराबर

तो अपने कोड की तरह दिखना चाहिए है यदि आप इसे अभी भी जोड़ना चाहते हैं, तो यह केवल IE8 है, तो jQuery.browser

+0

मुझे लगता है कि यह केवल सभी ब्राउज़रों के लिए निर्दिष्ट करने के बजाय आईई 8 फॉलबैक जोड़ने के लिए सबसे अच्छा है। –

+0

यह निश्चित है, लेकिन यह सवाल यहां नहीं है ... मैं बस उसे दिखा रहा हूं कि आईई –

0

इसके बजाय:

.css({ 'background-color': 'rgba(0,0,0,0.5)' }) 

आप यह कर सकते हैं:

.css({ 'background-color': 'rgb(0,0,0)', 'opacity': '0.5' }) 

यह सभी ब्राउज़रों में काम करेंगे।

+0

में पारदर्शिता के लिए फॉलबैक है अंदर पाठ के साथ क्या होगा? यह एक समाधान है यदि तत्व में कोई बच्चा या टेक्स्ट या कोई सीमा रंग नहीं है। – drinchev

+3

नहीं, क्षमा करें। अच्छा प्रयास करें, लेकिन IE8 सीएसएस 'अस्पष्टता' का भी समर्थन नहीं करता है। इसके अलावा, 'अस्पष्टता' तत्व अग्रभूमि को प्रभावित करेगा, जबकि मूल 'आरजीबीए' कोड केवल पृष्ठभूमि को प्रभावित करेगा। – Spudley