मुझे दूसरे दिन एक ही समस्या थी। विचित्र रूप से पर्याप्त, यह एफएफ में ठीक प्रतीत होता था, लेकिन आईई, क्रोम, और कभी-कभी सफारी में फ्लिकर होगा। समाधान एक सीएसएस स्प्राइट शीट का उपयोग करना है। आप एक ऐसी छवि बनाते हैं जिसमें दोनों पृष्ठभूमि एक-दूसरे के बगल में हों। आप केवल पृष्ठभूमि शीट का एक हिस्सा दिखाते हैं। आप पृष्ठभूमि पर मार्जिन समायोजित करके इसे टॉगल करते हैं। आप addClass और removeClass का उपयोग कर मार्जिन समायोजन को संभाल सकते हैं। नीचे दिए गए कोड, एक बेला के लिए यहाँ देखें: http://jsfiddle.net/fMhMY/
सीएसएस
.navButton span{
width:32px;
height:32px;
display:block;
}
a.leftButton span, a#leftButton span{
background-image:url(Prev.png);
background-position:-64px 0px;
}
/*nav button sprites */
/*sprite order is pushed, hover, natural */
a.leftButton.navOver span, a.rightButton.navOver span{
background-position:-32px 0px;
}
a.leftButton.navPressed span, a.rightButton.navPressed span{
background-position:0px 0px;
}
एचटीएमएल
<div style='display:inline-block'>
<a href="javascript:void(0);" class="leftButton navButton" id='lefty'>
<span></span>
</a>
</div>
jQuery
$('.leftButton').mousedown(function() {
$('.leftButton').addClass('navPressed');
console.log('mousedown');
});
$('.leftButton').mouseup(function() {
$('.leftButton').removeClass('navPressed');
console.log('mouseup');
});
$('.leftButton').hover(function() {
$('.leftButton').addClass('navOver');
console.log('hover');
});
$('.leftButton').mouseout(function() {
$('.leftButton').removeClass('navPressed').removeClass('navOver');
console.log('mouseout');
});
डब्ल्यू हाय क्या आप पृष्ठभूमि छवि को अद्यतन करने के लिए हर बार प्रदर्शन और जेड-इंडेक्स विशेषताओं को सेट कर रहे हैं? अपने सीएसएस में डिस्प्ले और जेड-इंडेक्स विशेषताओं को सबसे अच्छी तरह से खींचें। इसके अलावा जेड-इंडेक्स: 50 पीएक्स अमान्य है। जेड-इंडेक्स एक पूर्णांक मान लेता है। – Lowkase
क्या आपके पास स्क्रीनशॉट है? – Grigor
क्या आप अपनी छवियों को प्री-लोड कर रहे हैं? यदि नहीं, तो ब्राउजर डाउनलोड होने पर झिलमिलाहट हो सकती है। –