2013-04-01 20 views
5

Próbuję utworzyć przesuwne boczny pasek z efektami podobnymi dojquery boczne przesuwne bar od lewej do prawej

  1. www.wookmark.com
  2. http://www.dynamicdrive.com/dynamicindex1/slideinmenu.htm.

To jest, jak daleko napisałem kod. Jest to gwałtowne.

  1. Czy ktoś może zaproponować lepsze rozwiązanie z aniamtions/złagodzenie/przełączyć itp
  2. Chcę kod być niezależny od lewej parametru czyli $ ("# slide"). Css ("lewy", "-150px"); Powinien być w stanie wsuwać/wysuwać z szerokim zakresem szerokości podziałki

Jakieś pomysły?

CSS

#slide{ 
border:1.5px solid black; 
position:absolute; 
top:0; 
left:0; 
width:150px; 
height:100%; 
background-color:#F2F2F2; 
layer-background-color:#F2F2F2; 
} 

HTML

<div id="slide" style="left: -150px; top: 0px; width: 160px;"> 
    <p>Something here</p> 
</div> 

Jquery

<script> 
    jQuery(document).ready(function() { 
     $('#slide').mouseover(function() { 
      $("#slide").css("left", "0px"); 
     }); 

     $('#slide').mouseout(function() { 
      $("#slide").css("left", "-150px"); 
     }); 

    }); 
</script> 

Odpowiedz

10

TrzebaMetoda-

var width = $('#slide').width() - 10; 
$('#slide').hover(function() { 
    $(this).stop().animate({left:"0px"},500);  
    },function() {   
    $(this).stop().animate({left: - width },500);  
}); 

Tutaj dodano wcześniej .stop(). Spowoduje to wyczyszczenie kolejki animacji, która powstaje w wyniku szybkiego poruszania myszą.

DEMO

+0

Dziękujemy @ phobos.It działa jak chciałem. Ale jeśli umieściłem mysz szybko wiele razy na suwaku, to szaleje. W każdym razie możemy to naprawić? – django

+0

@django zobacz zaktualizowaną odpowiedź, aby pozbyć się tego dziwnego efektu. – SachinGutte

+0

Jeszcze raz dziękuję. Teraz działa jak urok. – django