Şimdi Ara

Javascript sorusu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
0
Favori
765
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Elimde A,B,C şeklinde 3 elemanlı bir liste olduğunu farz edelim.

    Bu listenin her bir elemanını 5 saniyede bir sırayla div in içinde göstermem gerekiyor. Bittğinde de başa dönüp sonsuza kadar tekrar edecek.

    Çok zor gibi görünmüyor ama atladığım bir şey var ve yapmadım.



  • Settimeout kullanabilirsin.Sonsuz bir döngü kurup listeyi yazdır.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Javascript The Definitive Guide belgesinden aldığım işlev üzerine basit bir nesne yazarak:
    Javascript sorusu

    kırmızı sarı mavi serisinin elemanlarını her saniyede bir bastırdım. Bu kodu HTML içinde div içeriğine uygulayabilirsin.

    < Bu ileti mini sürüm kullanılarak atıldı >

  • <div id="loop"></div>
    <script>
    var liste = ["Elma", "Armut", "Portakal"];
    var div = document.querySelector("#loop");
    var i = 0;

    div.innerHTML = liste[0];

    setInterval(function() {
    div.innerHTML = liste[++i % liste.length];
    }, 1000);
    </script>


    Edit: Ben süreyi 1 saniye olarak ayarladım daha hızlı gör diye. Sen 5000ms olarak ayarla orayı.



    < Bu mesaj bu kişi tarafından değiştirildi Revolution -- 5 Nisan 2020; 16:36:14 >
  • Teşekkürler. İşimi gördü bu. div.innerHTML = liste[0]; Burada parantez içine neden i değil de 0 yazdığınızı anlamadım yalnız.

    @vonderplanitz
    Sizinki biraz karışık geldi. Pek anlamadım açıkçası.
  • Hobar kullanıcısına yanıt
    Farketmez i de olur. Başlangıçta i değeri 0 zaten. Sadece sayfa açılırken ilk elamanı göstersin diye ekledim onu.
  • Hobar kullanıcısına yanıt
    benim koddaki invoke fonksiyonu her amaca uysun diye geniş yazıldığı için biraz karışık yoksa Revolution'un yazdığı stilde olması gerekli. ayrıca (elma armut karpuz) serisinin endeksini hafızada tutması için nesne oluşturdum, kod daha da uzadı. Revolution 'un kod o işlemi de daha kısa çözüyor.



    < Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 5 Nisan 2020; 23:17:43 >
    < Bu ileti mini sürüm kullanılarak atıldı >
  • Revolution kullanıcısına yanıt
    Şu an tam olarak istediğim gibi çalışıyor ama kodu biraz daha düzgün yapabilmek için kullandığım iki listeyi iki boyutlu tek listede push etmek istedim olmuyor. list.push(["@d.Title"],"@d.Target"]); şeklinde yaptığımda ard arda ekliyor. Bunu da yapabilir miyiz?

    Mevcut kod böyle.
    Javascript sorusu



    < Bu mesaj bu kişi tarafından değiştirildi Hobar -- 6 Nisan 2020; 12:42:30 >
  • Hobar kullanıcısına yanıt
    Direkt list dizisi olsun sadece

    list.push(["@d.Title", "@d.Target"]);

    şeklinde yazarsan dizi iki boyutlu olur.

    list[++i % list.length][0];
    list[i % list.length][1];

    şeklinde erişebilirsin yazdırmak için de.

    list.push(["@d.Title"],"@d.Target"); Bu şekilde yaparsan push metodu ard arda ekler. Hatta bir array bir string türünde ekler saçma bir şey olur. Yukarıdaki gibi yapman lazım.



    < Bu mesaj bu kişi tarafından değiştirildi Revolution -- 6 Nisan 2020; 22:36:23 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.