Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesuwane menu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
sestems
Witam wszystkich potzrebuje pomocy z moja strona,wygląda ona tak.



Chicałbym aby po wcisnieciu któregos z odnosników wszsttko szło do góry(logo oraz menu) mam to w jednym divie 'menu' oraz aby wysweitlana byla strona zalenie od właczonego odnosnika.Lecz juz na samym poczatku napotkałem problem.Chciałem poprostu sprawdzic czy działa javascript
wiec w zalaczniku head napisałem tak:
Kod
<script type="text/javascript">
function ruch() {
    document.getElementById("menu").style.marginTop="10px";
}
</script>

a w odnosniku dodałem
Kod
onclick="ruch()"

Pomoze ktos w napisaniu tego skryptu?
kamil4u
Daj link do dema.
sestems
Wrzucilem bez moich modyfikacji w js opisanych wyżej bo tak nie działały.
http://www.wojciech-polus.yoyo.pl
kamil4u
Wszystko działa. Błąd musi być gdzieś indziej...

http://jsfiddle.net/ChBEN/ - popatrz na link "o nas". Dodałem return false;, żeby nie było skoku.
sestems
Wielkie dzięki.Dziwne rzeczy naprawdę nie wiem co miałem źle ale teraz działa.Z animacją sobie poradzę.Jeszcze mam pytanie odnośnie drugiej sprawy.Co do wyświetlania treści.Chciałem to zrobić tak ze porostu div z treścią będzie ukryty po naciśnięciu odpowiedni będzie sie pokazywał.Ale czy nie ma innej możliwość?Ta troche prymitywna mi sie wydaje.Nie wiem moze sie myle.

Kurde nie wiem co jest źle znow chiałem zrobic płynne przesuniecie tego diva i znow nie działa.Oto kod:
Kod
function ruch() {
    i="160px";
    document.getElementById("menu").style.marginTop= i -"2px";
    if (i=5) {
        setTimeout("ruch()", 100);
    }
}

Prosze o podpowiedź co jest nie tak.

Z wczytywaniem plików sobie poradziłem użyłem jquery oraz load(file).Pozostał mi problem z animacja zmniejszenia marginesu górnego chciałbym aby to wykonywało ie płynniej jednak moj kod nie działa.
kamil4u
Nie możesz sobie porównywać int i string tak nierozważnie smile.gif

Kod
if (i=5) { --> czy "160px"=5

po pierwsze ==, po drugie chyba powinieneś porównać liczby.

Kod
i -"2px" --> "160px"-"2px"

Komputer to nie człowiek, to coś nie wie co to jednostki i jak na nich operować. Zawsze operuj na liczbach i dodawaj na końcu "px"

Cytat
Chciałem to zrobić tak ze porostu div z treścią będzie ukryty po naciśnięciu odpowiedni będzie sie pokazywał.Ale czy nie ma innej możliwość?Ta troche prymitywna mi sie wydaje.Nie wiem moze sie myle.
Jeżeli zrobisz to dobrze to jest to dobry pomysł.

--edit--
Co do tej animacji. Przy każdym wywołaniu funkcji nadpisujesz i, więc Twój warunek nigdy się nie spełni.
sestems
Cholera nie moge sobie z tym poradzic mam teraz taki kod.
Kod
var i=190;
function ruch() {
    document.getElementById("menu").style.marginTop= i - 1 +"px";
    if (i >= 2) {
        setTimeout("ruch()", 1000);
    }
}

I poporstu zmniejsza mi raz marginTop o 1 px i koniec.
kamil4u
Teraz nie zmniejszasz i, tylko odejmujesz o i - 1.

Kod
= i - 1 +"px";

-->
Kod
= (--i)+"px";
sestems
Ten sam efekt;/
kamil4u
Jak Ty to testujesz? http://jsfiddle.net/ChBEN/1/ Animacja jest wolna bo tak ustawiłeś - 1px -> 1s

Postaraj się pisać uważniej.
sestems
Okej wielkie dzienki działa jak powinno.
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.