[JS] Lista rozsuwana

0

Witam
Chcę napisać skrypt który będzie zawierał listę rozsuwaną.

Niegdyś taką listę sobie zrobiłem ale ostatnio zauważyłem że działa tylko na IE.

Dzisiaj znalazłem na stronie Microsoftu http://www.microsoft.com/en/us/default.aspx taką list(działa na FireFox i IE) i stwierdziłem że ją okroje no i nie działa na IE :-(

Może mi ktoś pomóc może kiedyś sami robiliście taki skrypt.

Z góry dzięki.

Bardzo byłbym wdzięczny za podanie czy istnieje metoda dzięki której pod wszystkimi przeglądarkami będzie działał taki skrypt, czy trzeba dać wykrywanie przeglądarki.

0

Rany, żadne wykrywanie przeglądarki. To technika z wczesnego średniowiecza. Tej MS nie oglądałem, ale jest to prawdopodobne.

Chodzi o coś w tym stylu jak ma Riddle (tylko to nie menu akurat)? http://riddle.pl/
To zobacz jak to jest zrobione, w oparciu o jQuery na pewno.

Takie rozwijanie można też łatwo zrobić z użyciem script.aculo.us. Zobacz też czy mootools (http://demos.mootools.net/) tego nie oferuje, spodziewam się, że tak (hmm, to jest chyba mniej więcej to, o co chodzi: http://demos.mootools.net/Accordion)

0

Ja rozumiem to tak, że chcesz mieć menu dynamiczne, tzn. jak najedziesz/klikniesz na pozycję to zmieni się zawartość. Nie chcesz przeładowywać strony, więc najprostszym rozwiązaniem będzie DOM ;-) Przyda się też trochę AJAX-a, ale można się obyć bez. :-) Tworzysz funkcję mniej więcej taką:

function showText(i) {
	if(i<texts.length) {
		document.getElementById("content").innerHTML=texts[i];
	}
}

gdzie content to id znacznika, w którym ma się pojawić tekst, a texts to tablica z tekstami. Do argumentów elementów w menu dodajesz onclick="javascript:showText(n)" gdzie n to numer tekstu licząc od 0.

0

Z http://ferrante.pl/2007/03/03/praktyczne-wprowadzenie-do-javascript-6/ mam taki kod

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pl-PL">
<head>
<title>Strona z newsem</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<!-- Nasz kod Javascript: -->

<script type="text/javascript">
window.onload = Laduj;
	function PokazAkapit(id_paragrafu)
	{
		var akapit = document.getElementById(id_paragrafu);
		var odnosnik = document.getElementById('link');

		var view = akapit.style.display;

		if (view == "block")
		{
			odnosnik.innerHTML = "więcej";
			akapit.style.display = "none";
		}

		if (view == "none")
		{
			odnosnik.innerHTML = "schowaj";
			akapit.style.display = "block";
		}

	}

	function Laduj()
	{
		var odnosnik = document.getElementById('link');
		odnosnik.onclick = function () { PokazAkapit('more_second'); }
	}

</script>

</head>
<body>
<div>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque metus eros, rutrum at, hendrerit nec, posuere ac.<a href="#" id="link">więcej</a></p>

<p id="more" style="display: none;">Vivamus pretium fringilla metus. Praesent a enim eu metus scelerisque tincidunt. In auctor lorem et leo.</p>

<p id="more_second" style="display: none;">Vivamus pretium fringilla metus. Praesent a enim eu metus scelerisque tincidunt. In auctor lorem et leo.</p>
</div>
</body>
</html>

właśnie o to mi chodzi tylko że pod IE wyskakuje że jest ActiveX, ale TYLKO gdy strona jest na dysku, a nie na serwerze.

KONIEC TEMATU

0

W IE, gdy strona jest na dysku, zawsze wyskoczy ostrzeżenie i trzeba będzie ręcznie zatwierdzić skrypt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1