2013-06-22 6 views
10

मैं एक त्वरित स्क्रिप्ट कि एक निशान कर्सर का पालन गया है बंद हो जाता है:Jquery निष्पादित जब माउस को ले

jQuery(document).ready(function(){ 
    $(document).mousemove(function(e){ 
     $('.fall').each(function(){ 
      if ($(this).css("opacity") == 0){ 
       $(this).remove(); 
      }; 
     }); 
     t = (e.pageY - 10).toString() + 'px'; 
     l = (e.pageX - 10).toString() + 'px'; 
     $('.fall').css("margin_left",l); 
     $('.fall').css("margin_top",t); 
     var doit = '<div class="fall" style="position:fixed;margin-left:' + l + ';margin-top:' + t + ';">+</div>' 
     $('body').prepend(doit); 
     $('#status2').html(e.pageX +', '+ e.pageY); 

     $('.fall').animate({ 
      marginTop: '+=50px', 
      opacity: 0 
     },1000);  
    }); 
}); 

अब मैं animate हिस्से को हटाने और की तरह कुछ करना चाहते हैं निम्नलिखित जब माउस नहीं है चल रहा है:

$('.fall').each(function(){ 
    $(this).fadeOut('slow'); 
    $(this).remove() 
}); 

मैं यह समझ नहीं सकता कि माउस इसे दूसरे स्थान की तुलना में अधिक नहीं चल रहा है, इसे निष्पादित करने के तरीके को समझ नहीं सकता है। कोई विचार?

धन्यवाद, और here is a jsfiddle

+0

अद्यतन एक वर 'mouseLastMoved' हर बार चले गए और एक setTimeout का उपयोग कर रहा है यह देखना होगा कि' अब> mouseLastMoved + x seconds'? – Popnoodles

+0

मुझे समझ में नहीं आता कि आप क्या चाहते हैं लेकिन मैंने इसे अपने नए कोड का उपयोग करने के लिए अपडेट किया: http://jsfiddle.net/wVVbT/9/ - क्या यह मदद करता है? – Joe

+0

मुझे उस पंक्ति को निष्पादित करने की आवश्यकता है जब माउस चलना बंद कर देता है ... इसलिए आपके द्वारा पोस्ट किया गया अद्यतन कोड वह नहीं है जो मैं चाहता हूं –

उत्तर

4

क्या आपको इसकी आवश्यकता है? jsFiddle

lastTimeMouseMoved = new Date().getTime(); 
var t = setTimeout(function() { 
    var currentTime = new Date().getTime(); 
    if (currentTime - lastTimeMouseMoved > 1000) { 
    $('.fall').fadeOut('slow'); 
    // $('.fall').remove(); 
    } 
}, 1000) 
+0

देखें यह लगभग सही है !! यह बिल्कुल सही बात है ... लेकिन यह फीका नहीं है, यह सिर्फ –

+0

हटा दिया जाता है, आप ऐसा करने के लिए छोटे बदलाव कर सकते हैं ... – Varun

+0

बस // $ ('fall') टिप्पणी करें।(); – Varun

13

आप समय समाप्त जोड़ने कि आग की निष्क्रियता के एक सेकंड, और बाद का समय समाप्त स्पष्ट करता है, तो 1 सेकंड आदि के भीतर माउस चालें:

var timer; 
$(document).on('mousemove', function(e){ 
    clearTimeout(timer); 

    timer = setTimeout(function() { 
     $('.fall').fadeOut('slow', function() { 
      $(this).remove(); 
     }); 
    }, 1000); 
}); 

FIDDLE

संपादित करें:

यहां मैं यह कैसे करूं

FIDDLE

+0

लक्ष्य बंद होने पर उन्हें फीका करना है। ऐसा नहीं करता है, यह सिर्फ ड्राइंग को रोकता है। और फिर आप फिर से शुरू नहीं कर सकते ... –

+0

@RyanSaxe - लेकिन क्या वे पहले से ही फीका नहीं है? वैसे भी, उत्तर को संपादित किया गया, यह पता लगाने के लिए एक ही सिद्धांत, जब माउस एक दूसरे के लिए रुक गया। – adeneo

+1

@adeneo - मुझे लगता है कि वे ऐसा कुछ चाहते हैं: http://jsfiddle.net/wVVbT/13/ - उन्हें बस इतना करना है अपना काम करने के लिए वे अपने मूल कार्य में कुछ पंक्तियों को हटाना चाहते हैं। – Joe

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