Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-09-2010, 11:20   #1 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
Wie onMouseOut verhindern, wenn Focus auf Inputfeld ist

hi,

ich arbeite gerade an einer Navigation die anfangs nur teilweise sichtbar ist.
Fährt man mit der Mouse über den Navigationsbereich, wird die ganze
Navigation eingeblendet. Nehm ich die Mouse von der Navigation weg, dann
wird sie wieder ausgeblendet. Läuft soweit wie gewünscht.

In der Navigation gibt es nun einen Loginbereich (Name, Passwort, Submitbutton).

Wie kann ich nun das Ausblenden verhindern, wenn der Cursor in einem der
Inputfelder ist? Ich geb also meine Zugangsdaten eine und hab z.B. aus
Versehen die Mouse wegbewegt, dann verschwindet die Navigation natürlich.
Das möchte ich unterbinden, aber wie?

Ich habs mit jQuery gelöst. Hier ein Beispiel:
PHP-Code:
var topNav = (function() {
    
    var 
topnav = $('#topnav'),
        
page = $('.page'topnav),
        
hlist = $('.hlist'page),
        
hlist_height Math.ceil(hlist.height());

    
// Hover Effect
    
topnav.hoverIntent(
      function(){ 
// <-- Das passiert bei MouseOver
        
page.animate({
          
heighthlist_height,
        }, {
duration300queuefalse'easing''easeOutQuint'});
      },
      function(){ 
// <-- und das bei MouseOut
        
page.animate({
         
height27,
        }, {
duration450queuefalse'easing''easeOutQuint'});
      }
    );
    
  })(); 
Bei "onMouseOut" muss ich irgendwie ne Abfrage reinbasteln aber ich kriegs
net gebacken.

Danke für jede hilfreiche Antwort
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 26-09-2010, 12:02   #2 (permalink)
.ad
 
Benutzerbild von bobby
 
Registriert seit: Jun 2001
Ort: zürich
Beiträge: 10.731
Schau mal hier, das script findet sich im Quellcode
fixOnMouseOut Test
__________________
http://www.radiocity.ch
bobby ist offline   Mit Zitat antworten
Alt 26-09-2010, 12:09   #3 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
Zitat:
Zitat von bobby Beitrag anzeigen
Schau mal hier, das script findet sich im Quellcode
fixOnMouseOut Test
Danke für den Link .

Ich check leider nicht ganz wie mir das weiterhelfen soll?

Wie kann ich damit abfragen wer gerade den Focus hat und darauf bestimmte
Events "anhalten" und wieder "starten"?

Ich versuch gerade folgenden Ansatz, was schon ganz gut funktioniert aber einen "Schönheitsfehler" hat:

PHP-Code:
    function handlerMouseEnterEvent(){
      
page.animate(
        {
heighthlist_height},
        {
duration300queuefalse'easing''easeOutQuint'}
      );
    }
    
    function 
handlerMouseLeaveEvent(){
     
page.animate(
       {
height27},
       {
duration450queuefalse'easing''easeOutQuint'}
     );
    }
    
    
topnav.bind('mouseenter'handlerMouseEnterEvent);
    
topnav.bind('mouseleave'handlerMouseLeaveEvent);
    
    
inputfields.each(function(){
      
      $(
this).focus(function(){
        
topnav.unbind('mouseleave');
      });
      
      $(
this).blur(function(){
        
topnav.bind('mouseleave'handlerMouseLeaveEvent);
      });
      
    }); 
Im oberen Code hatte ich die beiden Events "mouseenter" und "mouseleave" in
der Funktion "hoverIntent" vereint (hoverIntent jQuery Plug-in).

Das hatte die Aufgabe die Events nicht sofort abzufeuern, sondern darauf zu
warten, ob die Mouse auch in dem jeweiligen Bereich stehen bleibt. Das kann
ich jetzt aber nicht mehr nutzen!

Wie kann ich wieder so einen "delay" einbauen?
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs

Geändert von :: RK :: (26-09-2010 um 12:15 Uhr)
:: RK :: ist offline   Mit Zitat antworten
Alt 26-09-2010, 12:46   #4 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
Problem gelöst!

Mein Problem hat sich erledigt

Wer wissen will wie: hier meine Lösung:

PHP-Code:
var topNav = (function() {
  
  var 
topnav = $('#topnav'),
      
page = $('.page'topnav),
      
hlist = $('.hlist'page),
      
hlist_height Math.ceil(hlist.height()),
      
inputfields = $('input.text'hlist);
  
  
// MouseOver Eventhandler
  
function handlerMouseEnterEvent(){
    
    
clearTimeout($(this).data('timeout'));
    
    $(
this).data('timeout'setTimeout( function () {  
      
page.animate(
        {
heighthlist_height},
        {
duration300queuefalse'easing''easeOutQuint'}
      );
    }, 
250));
    
  }
  
  
// MouseOut Eventhandler
  
function handlerMouseLeaveEvent(){
    
    
clearTimeout($(this).data('timeout'));
    
    $(
this).data('timeout'setTimeout( function () {
      
page.animate(
        {
height27},
        {
duration450queuefalse'easing''easeOutQuint'}
      );
    }, 
350));
    
  }
  
  
// Eventhandler an topnav binden
  
topnav.bind('mouseenter'handlerMouseEnterEvent);
  
topnav.bind('mouseleave'handlerMouseLeaveEvent);
  
  
// Falls Focus auf eines der Inputfelder liegt, Eventhandler für MouseOut lösen
  // Falls Focus verloren geht, Eventhandler wieder anbinden
  
inputfields.each(function(){
    
    $(
this).focus(function(){
      
topnav.unbind('mouseleave');
    });
    
    $(
this).blur(function(){
      
topnav.bind('mouseleave'handlerMouseLeaveEvent);
    });
    
  });
  
})(); 
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
bind, delay, hover, jquery, unbind

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
setSelection funktioniert nur wenn ein Textfeld den Focus hat? stnswz Flash CS3 Professional 1 16-01-2009 16:04
Key-Klasse ohne nur wenn Focus nicht auf Textfeld liegt cyberholic ActionScript 2 6 24-01-2007 19:47
Focus nach filmstart auf inputfeld? benn009 ActionScript 1 4 31-10-2006 11:43
Textarea inhalt löschen wenn er den focus erhält? wasi1 JavaScript & jQuery 3 23-08-2004 16:47
onClipEvent wenn Bild im Focus auftaucht.. matzeka ActionScript 1 6 08-10-2003 13:54


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:23 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele