Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ AJAX ] Samoczynnie zmieniające się newsy
Forum PHP.pl > Forum > XML, AJAX
Kamil Jura
Witam serdecznie.

Szukałem już w internecie czegoś takiego, jednak nie wiedziałem dokładnie pod jaką frazą mam szukać - nie znalazłem.

Z JS jestem kiepski, z technologią AJAX mam mało wspólnego.




Proszę o pomoc w następującej sprawie. Każdy chyba widział jak sobie latają newsy np. na Wirtualnej Polsce. ( te 4 newsy w jednym boxie co się zmieniają same ). Jeśli ktoś nie widział, to polecam zobaczyć smile.gif

Chciałbym umieścić na swojej stronie coś takiego, jednak nie potrafię tego napisać. Jeśli ktoś może podesłać gotowy kod, albo naprowadzić na jakieś wskazówki, lub ew. ktoś znalazł w internecie takie rozwiązanie, to byłbym bardzo wdzięczny jeśli ta osoba będzie w stanie mi pomóc.




Z Góry dziekuję i pozdrawiam

Kamil Jura

lukasz_os
Nie napiszę całego kodu bo to trochę by zajęło. Przedstawię ogólnie ideę działania. I wcale te newsy nie musza być ładowane ajaxem.

Więc w skrócie możesz zrobić to tak:

W jednym divie(kontenerze) umieszczasz 4 (jak na wp) divy o jednakowej klasie. W nich umieszczasz co tam chcesz: grafikę, linki, tekst). Jednemu nadajesz display:block; reszcie display:none;. Za pomocą Javascriptu sprawdzasz który z tych divów jest widoczny ustawiasz mu display:none; a następnemu display:block; i tak na zmianę dzięki funkcji z odpowiednim Timeoutem. Jak będzie wskazywał ostatni div to pokazuj pierwszy itd. Funkcję zmieniającą możesz również przypisać do linków czy buttonów o ile chcesz mieć nawigację pod spodem.

Pozdrawiam.
Kamil Jura
Kod HTML to wiem jaki musi być. Nie wiem jak napisać takie funkcje w JS a mam mało czasu. Mógłbyś podać jakiś zarys kodu, jakiś przykład ? To wtedy sobie poradzę.




Mimo wszystko dziękuję za pomoc smile.gif

lukasz_os
Możesz do tego wykorzystać bibliotekę jQuery.

Cały kod powinien wyglądać mniej więcej tak:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2.  
  3. <title>TEST SLIDERA</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
  5. <meta name="author" content="lukasz_os" >
  6. <script type="text/javascript" src="jquery.js"></script>
  7. <script type="text/javascript">
  8. function rotate(){
  9. last=$("#container .news").index($('.news:last')[0]);
  10. ind=$("#container .news").index($('.news:visible')[0]);
  11. $('.news').eq(ind).hide();
  12. if(ind==last){
  13. ind="0";
  14. }
  15. else
  16. {
  17. ind++;
  18. }
  19. $('.news').eq(ind).show();
  20. }
  21. $().ready(function(){
  22. $('#container .news:first').show();
  23. setInterval("rotate()",2000);
  24. });
  25. </script>
  26. <style type="text/css">
  27. * {
  28. margin:0;
  29. padding:0;
  30. }
  31. body {
  32. background:#ffffff;
  33. color:#000;
  34. }
  35. .news {
  36. width:300px;
  37. height:200px;
  38. border:1px solid #000;
  39. display:none;
  40. }
  41. #container {
  42. margin:20px;
  43. width:302px;
  44. height:202px;
  45. }
  46. </style>
  47. </head>
  48.  
  49. <div id="container">
  50. <div class="news">
  51. div 1
  52. </div>
  53. <div class="news">
  54. div 2
  55. </div>
  56. <div class="news">
  57. div 3
  58. </div>
  59. <div class="news">
  60. div 4
  61. </div>
  62. </div>
  63. </body>
  64. </html>


Testowane i działa smile.gif W razie jakichkolwiek pytań pisz smile.gif

Pozdrawiam.
Kamil Jura
A jak do tego dopisać zmiane tego newsa po kliknieciu np numerkaj jakiegoś ? Bo nie bardzo wiem jak to zrobić. Wiem, że to się jakoś getelementbyid robiło, ale nie pamiętam jak.

Niestety powyższy przykład nie działa ... jak się okazało ..... czy możesz coś na to poradzić ? Na początku skopiowałem ten kod i przerobiłem go na swoje potrzeby. Nie zadziałało. Myślę sobie hmmm.... skopiuję go i odpalę. Skopiowałem i dokładnie ten kod odpaliłem w przeglądarce. Dalej nic ...

misiek08
A ściągnąłeś bibliotekę jQuery do tego samego katalogu co ten plik HTML?
Kamil Jura
O kurde ... heeh przepraszam ... ja nie zauważyłem, że tam jest jQuery. Dobra mój błąd smile.gif Pozdrawiam ;p;p Dzięki wielkie
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.