Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] jak przerobic show / hide div, tak aby pokazywal..
Forum PHP.pl > Forum > Po stronie przeglądarki
AndyPSV
jak przerobic show / hide div, tak aby pokazywal.. tylko np. do HEIGHT: 50px (a pozniej gdy sie zrobi "epand", zmienial text i ikonke; a gdy sie zrobi "less", wracal do poprzedniego rozmiaru)

problem polega na tym, aby NIE ustawiac w kodzie kodu, od ktorego ma to byc zrobione (czyli np. <div id='more'>kolejna tresc</div>); tylko zeby po prostu robil to dynamicznie, czyli 1. cial do momentu tych elementow (wystawienia) (do tych "height: 50px");,

Mam taki skrypt (jak na razie):

Kod
<div class="article">
    
    
    <div class="articleBody" style='width:150px;height:50px'>
        <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p>
    </div>
    <div>
    <p class="show"><a href="#">Show [+]</a></p>
    <p class="hide"><a href="#">Hide [-]</a></p>
    </div>
</div>

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript">

$(document).ready(function(){

    $("div.article").each(function(){

        var thisArticle = this;

        // Initially, hide the "Show" link
        $("p.show", thisArticle).hide();

        // The show and hide links both toggle themselves and the article body
        $("p.show a, p.hide a", thisArticle).click(function(){
            $("p.show, p.hide, div.articleBody", thisArticle).toggle();
            return false;
        });

    });

});

</script>
Kartofelek
Możesz wykorzystać
animate, slideToggle lub toggle

$("div.article").animate({height:.....}, 500, function() { tutaj kod po wykonaniu - np dolaczenie expand });

Możesz też wykorzystać slideDown i slideUp

np.

$('.expand').toggle(
function() {$(this).parent().animate({height:400px}, 200, function() {$(this).append(......)});},
function() {$(this).parent().animate({height:100px}, 200, function() {$(this).append(......)});}
);

Ale to oczywiście do poprawy. Ah i pewnie zainteresuje cię .not(':animated');
AndyPSV
czy moglbys przerobic moj skrypt, ktory wkleilem (wkleic tam ten kod), aby dzialalo?

chodzi mi o to, ze mam rozwijane menu, ktore jest bardzo dlugie na stronie i nie bardzo jak moge wstawic w petli PHP (musialbym to rozbic na 2 czesci; generowac 2 razy to menu; tylko podzielic zmienna na 2 czesci)

MENU1

<div id='zakryte'>
MENU KOLEJNE
</div>

dlatego to co chce osiagnac to, aby jquery automatyczne mi "sciął" do wartosci np. 100px to menu i aby na dole pojawil sie przycisk "expand all", a nastepnie, po jego kliknieciu, aby zmienial sie on na "hide all"; to wszystko
mam nadzieje, ze teraz jest napisane po polskiemu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.