यह मेरा कोड है ऐसा करने का कोई और तरीका?jQuery .hide() fadein()
उत्तर
आप अस्पष्टता आप रखना चाहते हैं के बजाय यदि का उपयोग कर सकता है तत्व के आयाम बरकरार:
$('.items').html(response).css({'opacity':0}).animate({'opacity':1});
छिपाएं सीएसएस का उपयोग कर और उसके बाद जरूरत पड़ने पर इसे फीका:
सीएसएस:
.items {
display:none;
}
जावास्क्रिप्ट
$('.items').html(response).fadeIn();
समस्या यह है कि यह एक AJAX प्रतिक्रिया है .. पेज लोड पर दिखाए गए आइटम हैं जो मैं सिर्फ – Mackelito
फ़िल्टर कर रहा हूं, आपके पास कुछ अन्य विकल्प हैं - HTML को प्रतिस्थापित करें और div को इसके बदले दिखाने के लिए हाइलाइट करें ... एक संलग्न करें div और पिछले div ऊपर स्लाइड करें और फिर नया div ऊपर स्लाइड .... या fadeOut()/fadeIn()? – ManseUK
आप मौजूदा सामग्री और नए के बीच एक चिकनी transtion को दिखाने के लिए चाहते हैं, कोशिश निम्नलिखित:
$(function(){
$('.items').fadeOut(function(){
$(this).html(response).fadeIn();
})
});
यह एक क्लीनर समाधान है, क्योंकि यह तत्व की एक चमकती प्रभाव से बचा जाता है पहले जोड़ा जा रहा है, तो जल्दी से होने इसकी अस्पष्टता 0.
को इस तरह ELEM जोड़ा पहले से ही 0.
var elem = $(response).css({'opacity': 0});
$('.items').html(elem);
elem.animate({'opacity': 1});
का एक अस्पष्टता रहा है तुम क्यों छिपाने() दो बार मिल गया है सेट? एक बार जब यह छुपाया जाता है तो इसे तब तक छुपा रहना चाहिए जब तक आप इसे दिखाएं() यह फिर से – danwellman
ओह .. मेरा बुरा .. बस एक टाइपो .. प्रश्न संपादित करेगा! – Mackelito
क्या पृष्ठ लोड होने पर ".items" तत्व दिखाई देते हैं (और फिर, अनुमानतः, एक AJAX कॉल के माध्यम से अपडेट किया गया)? क्या छिपाने का विचार है और उस फीड पर ध्यान आकर्षित करने के लिए जो अभी अपडेट किया गया था? – nnnnnn