कुछ सेकंड के बाद डिव छिपाएँ


123

मैं सोच रहा था, कुछ सेकंड के बाद मैं कैसे jquery में एक div को छिपाने में सक्षम हूं? उदाहरण के लिए जीमेल के संदेश।

मैंने अपनी तरफ से पूरी कोशिश की है, लेकिन काम करने में असमर्थ हूं।


1
क्या सिर्फ अच्छा छिपाना काफी है, या आपको इसे फीका करने की आवश्यकता है?
जोएल कोएहॉर्न

जवाबों:


247

यह 1 सेकंड (1000 मिलीसेकंड) के बाद div को छिपा देगा।

setTimeout(function() {
    $('#mydiv').fadeOut('fast');
}, 1000); // <-- time in milliseconds
#mydiv{
    width: 100px;
    height: 100px;
    background: #000;
    color: #fff;
    text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv">myDiv</div>

यदि आप केवल लुप्त होती बिना छिपाना चाहते हैं, तो उपयोग करें hide()


2
और आपने पागल जोएल कोएहॉर्न को एक शॉट में बहुत अच्छे से पीटा है ! :)
क्रैगॉक्स

3
@ नाम, यह सुनिश्चित करने के लिए कि अंतिम परिणाम में कोई अंतर नहीं है, लेकिन मुझे लगता है कि कार्यान्वयन .delay()"मूल" और "के लिए सुरुचिपूर्ण" है jQuery
पॉल टी। रॉकेन

आप div के तुरंत छिपाने के लिए के .fadeOut('fast')साथ बदल सकते हैं .hide()
रैप्टर

90

आप कोशिश कर सकते हैं .delay()

$(".formSentMsg").delay(3200).fadeOut(300);

डिव को मिलीसेकेंड में देरी का समय निर्धारित करें और उस संपत्ति को सेट करें जिसे आप बदलना चाहते हैं, इस मामले में मैंने उपयोग किया ।fadeOut () तो यह एनिमेटेड हो सकता है, लेकिन आप .hide () भी उपयोग कर सकते हैं।

http://api.jquery.com/delay/


7
यह बेहतर बीकॉज है मुझे सेटटाइमआउट कोड का उपयोग करने की आवश्यकता नहीं है जो पढ़ना आसान है।
मारेक बार

12

jquery एक समयबद्ध तरीके से div को छुपाने के लिए कई तरह के तरीके प्रदान करता है जिसमें अंतराल टाइमर या अन्य ईवेंट हैंडलर को सेट करने और बाद में साफ़ करने या रीसेट करने की आवश्यकता नहीं होती है। कुछ उदाहरण निम्नलिखित हैं।

शुद्ध छिपाव, एक सेकंड की देरी

// hide in one second
$('#mydiv').delay(1000).hide(0); 

शुद्ध छिपाव, कोई देरी नहीं

// hide immediately
$('#mydiv').delay(0).hide(0); 

एनिमेटेड छिपाना

// start hide in one second, take 1/2 second for animated hide effect
$('#mydiv').delay(1000).hide(500); 

फेड आउट

// start fade out in one second, take 300ms to fade
$('#mydiv').delay(1000).fadeOut(300); 

इसके अतिरिक्त, तरीके दूसरे पैरामीटर (विधि के आधार पर) के रूप में एक कतार नाम या कार्य कर सकते हैं। उपरोक्त सभी कॉल और अन्य संबंधित कॉल के लिए दस्तावेज़ यहां देखे जा सकते हैं: https://api.jquery.com/category/effice/


10

ऐसा करने का एक बहुत ही सरल तरीका है।

समस्या यह है कि .delay केवल एनिमेशन को प्रभावित करता है, इसलिए आपको क्या करने की आवश्यकता है ।hide () इसे एक अवधि देकर एक एनीमेशन की तरह कार्य करता है।

$("#whatever").delay().hide(1);

यह एक अच्छी छोटी अवधि देकर, यह नियमित रूप से .hide फ़ंक्शन की तरह ही तुरंत दिखाई देता है।



3

JQuery टाइमर का उपयोग करने से आपको समय के साथ जुड़ा हुआ एक नाम भी मिलेगा जो ऑब्जेक्ट से जुड़ा हुआ है। इसलिए आप कई टाइमर को एक ऑब्जेक्ट से जोड़ सकते हैं और उनमें से किसी एक को रोक सकते हैं।

$("#myid").oneTime(1000, "mytimer1" function() {
  $("#something").hide();
}).oneTime(2000, "mytimer2" function() {
  $("#somethingelse").show();  
});

$("#myid").stopTime("mytimer2");

Eval फ़ंक्शन (और इसके रिश्तेदार, फ़ंक्शन, सेटटाइमआउट और सेटइंटरवल) जावास्क्रिप्ट संकलक तक पहुंच प्रदान करते हैं। यह कभी-कभी आवश्यक होता है, लेकिन ज्यादातर मामलों में यह बेहद खराब कोडिंग की उपस्थिति को इंगित करता है। Eval फ़ंक्शन JavaScript की सबसे अधिक दुरुपयोग की जाने वाली विशेषता है।

http://www.jslint.com/lint.html


2

संभवत: सबसे आसान तरीका है कि टाइमर प्लगइन का उपयोग करें। http://plugins.jquery.com/project/timers और फिर ऐसा कुछ कॉल करें

$(this).oneTime(1000, function() {
    $("#something").hide();
  });

1
क्या सेट टाइमआउट या सेटइंटरवल पर टाइमर प्लगइन का उपयोग करने के लिए कोई सम्मोहक कारण है?
खर्चा

2
मैं कहूंगा कि एक jquery प्लगइन डाउनलोड करना और संलग्न करना बस सेटटाइमआउट का उपयोग करने की तुलना में कम आसान है।
नाथन रिडले

1
मुझे नहीं लगता कि यह आवश्यक रूप से एक बुरी बात है, लेकिन चूंकि यह दुर्लभ है कि मैं कभी भी अपने कोड में टाइमर का उपयोग करता हूं, उस प्लगइन को चारों ओर से पढ़ा (पढ़ा: अतिरिक्त कोड, ब्लोट) उन कुछ समय के लिए लागत से अधिक नहीं निकलता है। यदि आप बहुत सारे कोड लिख रहे थे जो टाइमर का उपयोग करने की आवश्यकता थी, और jQuery का उपयोग कर रहे थे, तो मैं देख सकता हूं कि jQuery वाक्यविन्यास के साथ रखने के लिए यह प्लगइन बहुत उपयोगी क्यों होगा ...
जेसन बंटिंग


0
<script>
      $(function() {
      $(".hide-it").hide(7000);
    });              
</script>

<div id="hide-it">myDiv</div>

कृपया केवल कोड को उत्तर के रूप में पोस्ट न करें, बल्कि यह भी स्पष्टीकरण दें कि आपका कोड क्या करता है और यह प्रश्न की समस्या को कैसे हल करता है। एक स्पष्टीकरण के साथ उत्तर आमतौर पर अधिक सहायक और बेहतर गुणवत्ता के होते हैं, और upvotes को आकर्षित करने की अधिक संभावना होती है।
मार्क रोटेवेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.