Javascript Loop

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Amatör Üye
    ANZAK
    ANZAK's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Hocalar merhaba, sitede gif1 divinin içinde figure ve a nın altındaki img ın çok kısa zaman aralıklarında src sini değiştirmek istiyorum sonsuz döngüye sokup, aşağıdaki şekilde yaptım ama yemedi var mı önerisi olan? 

     

    jquery(document).ready(function( $ ){
    
    function foo() {
    
    	$('.gif1 > figure > a > img').attr('src', 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Instagram_icon.png/599px-Instagram_icon.png');
    
      	setTimeout(boo, 100);
    
    }
    
    function boo() {
    
    	$('.gif1 > figure > a > img').attr('src', 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/F_icon.svg/267px-F_icon.svg.png');
    
      	setTimeout(foo, 100);
    
    }  
    
    });




    Amatör forever
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yunusemre
    yunusemre's avatar
    Kayıt Tarihi: 22/Ağustos/2016
    Erkek

    .gif1 figure a img şeklinde dener misin


    "Programcılar saatler boyunca çalışmak zorunda kalmalarına engel olacak sistemler tasarlamaya saatler boyunca uğraşırlar." David Allen
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Amatör Üye
    ANZAK
    ANZAK's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek
    yunusemre bunu yazdı

    .gif1 figure a img şeklinde dener misin

    hocam loop mantığını yanlış kuruyorum fooya girip ilk src yi değiştiriyor ama sonrası çalışmıyor

     

    ANZAK tarafından 15/May/18 01:10 tarihinde düzenlenmiştir

    Amatör forever
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    Bir array oluştur içinde linkler olsun.

    Sonra bir fonksiyon oluştur. Her çağrıldığında (0 default olmak üzere) arraydaki girdileri okusun. (Her çağrıldığında tek işlem) ve değişiklik yapmak istediğin resmi bu arraydaki linke göre değiştirsin.

    Son olarak setInterval kullanarak bu fonksiyonu çağır. Array bitince stoplamasını da ister stop interval ile ayarla ister fonksiyonu boş döndür.

    Bir teşekkürü esirgemeyin +Rep verin forumu yaşatan yorumdur


    iyibu! yeniden..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    Flood gibi olmasın ama yukarıdaki mesajla karışmaması için yazmak istedim.

    Js betik dil olduğu için baştan sırayla satır satır okunup devam eden bir hede değil.

    Bir For içine set timeout koysanız beklentiniz olan "sıra sıra birbirini bekleyen gecikmeler" olayını alamazsınız. İşin Garibi hepsi aynı anda da çalışmaz. Tarayıcının (veya js çalıştıran hedenin) kaynak tüketimine bağlı olarak ufak milisaniyelik farklarla işlemler yapılır. Genelde hepsinin aynı anda işlem yaptığını doğal olarak yalnızca ilkinin veya sondakinin çalıştığını gözlemleriz.

    Bu yüzden tıpkı hook mantığıyla fonksiyondan fonksiyona kancalayarak işlemler yapılmalı.

    İşbu postun akademik hiçbir değeri yoktur.


    iyibu! yeniden..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Shuqufe
    Shuqufe's avatar
    Kayıt Tarihi: 24/Ağustos/2005
    Erkek
    $(function(){
      var elements = $('.gif1').find('figure').find('a').find('img'); //Yapıyı tam bilemediğim için böyle yazdım
        $.each(elements,function(i,e){
          $(e).attr('src', 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Instagram_icon.png/599px-Instagram_icon.png');
        }) 
    });

     

    dener misin? işini görecek mi ? olmaz da yardımcı olurum

    Shuqufe tarafından 15/May/18 12:02 tarihinde düzenlenmiştir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    https://jsfiddle.net/7Lofxn7d/

     

    Ama tercih edilen birşey değil bu. Doğrudan gif kullansan daha faydalı.

     

    @by_Tet 'in dediği, böyle birşey galiba;

    $(function() {
      setInterval(function() {
      	runMe();
      }, 1000);
    });
    
    var current = 0;
    function runMe() {
    	var arrayImg = [
      	'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/F_icon.svg/267px-F_icon.svg.png',
      	'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Instagram_icon.png/599px-Instagram_icon.png'
      ];
      
      $('img').attr('src', arrayImg[current]);
      current = current == arrayImg.length-1 ? 0 : current + 1;
    }

     

    Çoklu yapacaksan bunu kullanabilirsin. Ama bunun sapıtma olasılığı çok fazla asenkron olduğu için, özellikle 100 ms de deniyorsan hayır gelmeyebilir.

    manyaki tarafından 15/May/18 14:25 tarihinde düzenlenmiştir

    since 2005 // tbt
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    manyaki bunu yazdı

    https://jsfiddle.net/7Lofxn7d/

     

    Ama tercih edilen birşey değil bu. Doğrudan gif kullansan daha faydalı.

     

    @by_Tet 'in dediği, böyle birşey galiba;

    $(function() {
      setInterval(function() {
      	runMe();
      }, 1000);
    });
    
    var current = 0;
    function runMe() {
    	var arrayImg = [
      	'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/F_icon.svg/267px-F_icon.svg.png',
      	'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Instagram_icon.png/599px-Instagram_icon.png'
      ];
      
      $('img').attr('src', arrayImg[current]);
      current = current == arrayImg.length-1 ? 0 : current + 1;
    }

     

    Çoklu yapacaksan bunu kullanabilirsin. Ama bunun sapıtma olasılığı çok fazla asenkron olduğu için, özellikle 100 ms de deniyorsan hayır gelmeyebilir.

    Aynen böyle hocam eline sağlık. Telefondayım yazamıyorum.

    Sapıtma olasılığı dediğin gibi fakat yükleme durumu olduğundan 100 MS her türlü sıkıntı olacaktır.

    Gif yapılabilir dediğin gibi en mantıklısı olur.

    Ama illaki fotolar üstünden olacaksa yazdığın kodu biraz değiştirebiliriz, şöyle ki fotoların hepsini koyarız display:none yaparız. İnterval fonksiyonunda da sırayla show() yapıp diğerlerini hide() yaparız. Bu da tasarımda kaymaya sebep olabilir.

    Gif güzel fikir ya


    iyibu! yeniden..
Toplam Hit: 1192 Toplam Mesaj: 8
javascript jquery