Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jScrollPane - scrollowanie zawartości diva
Forum PHP.pl > Forum > XML, AJAX
Papub
Witam. Męczę się z pewnym problemem a mianowicie. Tekst w divie mogę scrollować gdy jest od zapisany na sztywno w ciele dokumentu. Natomiast ja chcę scrollować zawartość diva (#content5) która jest odpowiedzią z pliku php. I to przewiajanie mi nie chodzi. Pozdrawiam

  1. $.post("news.php", {news_title: naz}, function(data){
  2. if(data.length >0) {
  3. poprzedni = "5";
  4. $("#content5").html(data);
  5. $("#content5").fadeIn(200);
  6. }
kamil4u
1. Nie widzę w Twoim kodzie żadnej funkcji odpowiedzialnej za scroll-owanie
2. widzę, że korzystać z jQuery,czyli powinieneś użyć: http://api.jquery.com/scrollTop/
3. Oczywiście musisz wykonać tą funkcję po: $("#content5").html(data);

Pozdrawiam
Papub
Jak w tytule tematu korzystam z pluginu jScrollPane. Sam skrypt przewijania nic tu nie wnosi wiec go nie umieściłem. Skrypt przewija ale tylko wtedy gdy w content5 wpisze na sztywno tekst a nie gdy ten sam tekst zostanie przesłany z pliku news.php
chomiczek
@Papub ja na Twoim miejscu przed:
Kod
if(data.length >0) {
dał
Kod
alert(data)
w ten sposób sprawdzisz czy aby na pewno zwracane masz dane przez plik.
Dla pewności w firebugu podglądnij sobie czy aby na pewno szukany plik istnieje.

Czy zmienna 'naz' ma jakąś wartość?
Dla pewności w pliku news.php
daj na początku
Kod
<?PHP
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>


nie wiem czy zamieszczony kod JS jest kompletny czy obciąłeś go przypadkowo, ale cały kod powinien wyglądać tak:
Kod
$.post("news.php", { news_title: naz }, function(data){
     if(data.length >0) {
            poprzedni = "5";
            $("#content5").html(data);
            $("#content5").fadeIn(200);
     }
});

arecki
Cytat(Papub @ 4.08.2010, 17:19:44 ) *
Jak w tytule tematu korzystam z pluginu jScrollPane. Sam skrypt przewijania nic tu nie wnosi wiec go nie umieściłem. Skrypt przewija ale tylko wtedy gdy w content5 wpisze na sztywno tekst a nie gdy ten sam tekst zostanie przesłany z pliku news.php

Pewnie dlatego że skrypt się uruchamia przed wczytaniem zawartości i wg. niego nie trzeba tej zawartości przewijać. Podepnij uruchamianie skryptu jscrollpane na zdarzenie onload diva do którego dodajesz kod i możliwe że zadziała.
Papub
Witam.
No Pan arecki miał trochę racji. Implementację scrollwania przeniosłem pod komendę wpisywania zawartości diva a z początku ta implementacja była w sekcji head.
Teraz to wygląda tak:

  1. $("#content4 a").click(function() {
  2. $("#content4").fadeOut(200);
  3. naz = $(this).attr('id');
  4. document.getElementById('content_loading').style.display = "block";
  5. $.post("news.php", {news_title: naz}, function(data){
  6. if(data.length >0) {
  7. poprzedni = "5";
  8. $("#content5").html(data);
  9. $("#content5").fadeIn(200);
  10. $(function()
  11. {
  12. document.getElementById('content_loading').style.display = "none";
  13. $('#content5').jScrollPane({scrollbarWidth: 17});
  14. });
  15. }
  16. });
  17. });


Temat rozwiązany. Dzięki za pomoc. Pozdrowionka
krzysiek_sw
Jeszcze tak na marginesie, można zastosować odpowiednie ostylowanie CSS div'a i dać na sztywno jakiś konkretny rozmiar, będzie podobny efekt jak w JQuery... Oczywiście treść do niego musi być ładowana AJAX'em, tego nie da się przeskoczyć.
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.