2013-06-24 20 views
14

Jestem nowy w JQ mam ten skrypt znalazłem w internecie i jej robić dokładnie to, co muszę, ale chcę przesuwnych będzie od prawej do lewej jak to zrobić to? pomóżslideToggle JQuery prawej do lewej

jest to kod

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script> 
<script type="text/javascript"> 

$(document).ready(function(){ 

     $(".slidingDiv").hide(); 
     $(".show_hide").show(); 

    $('.show_hide').click(function(){ 
    $(".slidingDiv").slideToggle(); 
    }); 

}); 

</script> 
<style> 

.slidingDiv { 
    height:300px; 
    background-color: #99CCFF; 
    padding:20px; 
    margin-top:10px; 
    border-bottom:5px solid #3399FF; 
} 

.show_hide { 
    display:none; 
} 
</style> 
</head> 

<body> 

<div class="slidingDiv"> 
Fill this space with really interesting content. <a href="#" class="show_hide">hide</a></div> 
<a href="#" class="show_hide">Show/hide</a> 
+0

Dodałem odpowiedź, proszę spojrzeć. –

Odpowiedz

19

Można to zrobić za pomocą additional effects as a part of jQuery-ui

$('.show_hide').click(function() { 
    $(".slidingDiv").toggle("slide"); 
}); 

Test Link

+6

[możesz również ustawić dla niego 'direction: 'right''] (http://jsfiddle.net/Spokey/qEjXj/5 /) – Spokey

+1

To, w połączeniu z opcją kierunku, jest najlepszą odpowiedzią. –

11

Spróbuj tego:

$(this).hide("slide", { direction: "left" }, 1000); 

$(this).show("slide", { direction: "left" }, 1000);

+2

Lub możesz przeczytać ten świetny samouczek: http: //www.learningjquery.com/2009/02/slide-elements-in-different-directions –

+5

Wymaga to jQuery UI –

4

Wiem, że minął rok od tego pytania, ale tylko dla osób, które zamierzają odwiedzić tę stronę, zamieszczam moje rozwiązanie.

Korzystając co @Aldi Unanto zasugerował tu jest pełniejsza odpowiedź:

jQuery('.show_hide').click(function(e) { 
    e.preventDefault(); 
    if (jQuery('.slidingDiv').is(":visible")) { 
     jQuery('.slidingDiv').stop(true,true).hide("slide", { direction: "left" }, 200); 
    } else { 
     jQuery('.slidingDiv').stop(true,true).show("slide", { direction: "left" }, 200); 
    } 
    }); 

Najpierw zapobiec link od robienia czegokolwiek na kliknięcia. Następnie dodaję czek, jeśli element jest widoczny, czy nie. Gdy jest widoczny, ukrywam go. Po ukryciu pokazuję to. Możesz zmienić kierunek na lewy lub prawy i czas trwania z 200 ms na dowolne.

Edit: Dodałem także

.stop(true,true) 

w celu clearQueue i jumpToEnd. Read about jQuery stop here

4

Spróbuj ten kod

$(this).animate({'width': 'toggle'}); 
+2

Ten kod nic nie robi, chyba że używasz interfejsu użytkownika jQuery. Wszystkie domyślne opcje, które masz, to "wolno" i "szybko". –

+2

Ponadto kod ten spowoduje błąd składni, ponieważ parametry "animate" powinny zostać przekazane jako obiekt (brakuje ci '{}'). – vard

+1

To byłaby lepsza odpowiedź, gdyby zawierała wyjaśnienie wraz z kodem. –

0

obejmują jQuery i jQuery UI wtyczek i spróbować

$("#LeftSidePane").toggle('slide','left',400); 
2

Spróbuj

$('.slidingDiv').toggle("slide", {direction: "right" }, 1000); 
0

Proponuję użyć poniżej css

.showhideoverlay { 
    width: 100%; 
    height: 100%; 
    right: 0px; 
    top: 0px; 
    position: fixed; 
    background: #000; 
    opacity: 0.75; 
} 

Następnie można skorzystać z prostej funkcji przełączania:

$('a.open').click(function() { 
    $('div.showhideoverlay').toggle("slow"); 
}); 

To spowoduje wyświetlenie menu nakładki od prawej do lewej. Alternatywnie można użyć pozycjonowania do zmiany efektu z góry lub dołu, tj. Użyć bottom: 0; zamiast top: 0; - zobaczysz menu przesuwające się z prawego dolnego rogu.

1
$("#mydiv").toggle(500,"swing"); 
+3

proszę dodać więcej opisów –

+0

Dziękujemy za ten fragment kodu, który może zapewnić ograniczoną, natychmiastową pomoc. A [odpowiednie wyjaśnienie] (https://meta.stackexchange.com/q/114762) znacznie poprawiłoby jego długoterminową wartość, pokazując, dlaczego jest to dobre rozwiązanie problemu i czyniłoby go bardziej przydatnym dla przyszłych czytelników z innymi podobne pytania. Proszę [edytuj] (https://meta.stackoverflow.com/posts/360251/edit) swoją odpowiedź, aby dodać wyjaśnienia, w tym założenia, które podjąłeś. [ref] (https://meta.stackoverflow.com/a/360251/8371915) – user8371915