• 02-04-2022, 15:43:29
    #1
    Çözüldü: Almış olduğum hatayı Owl Carousel eklentisi ile çözmüş oldum. Burada yapmış olduğum hata; JavaScript gibi geniş bir dilde sıfırdan yazmaya çalışmak oldu. Bana yol gösteren, vesile olan kullanıcı: @socidev; 'e çok teşekkürlerimi sunuyorum.


    Dün de aynı konuyu açmıştım ama çözemediğim için tekrardan konu açmaya karar verdim.
    Transform:translate methodu ile kaydırılan slider yapmaktayım. Örnek olarak js de iki adet media sorgusu yazdım. Biri 700px den küçük olunca, diğeri büyük olunca. Sayfa yüklenince slider kutu boyutları ayarlanıyor ve butona tıklanınca slider geçişini sorunsuz bir şekilde yapıyor. Fakat diğer media query nin içine girince önceki media query içindeki click event 'i çalışmaya devam ediyor. Haliyle böyle olunca bozulmalar yaşanıyor. Mesela ekran resize olunca hangi media query nin içerisindeyse sadece oradaki click eventinin çalışmasını istiyorum. Bunu nasıl yapabilirim? Ufak bir yol gösterebilirseniz yapabilirim. Herkesin önerisi deneyeceğim.

                    <script>
                    document.querySelector('body').onload = function() {
                        var index = 0;
                        if (window.innerWidth > 700) {
                            document.getElementById('slider_container').style.width = (window.innerWidth * 2)
                            document.querySelector('.slider_next_btn').addEventListener('click', function() {
                                if (index < document.querySelectorAll('.post_box_slider').length - 4) {
                                    index++;
                                    document.getElementById('slider_container').style.transform = 'translate3d(-' + (index * (window.innerWidth / 4 - 2.5)) + 'px, 0px, 0px)'
                                }
                            })
                            document.querySelector('.slider_prev_btn').addEventListener('click', function() {
                                if (index > 0) {
                                    index--;
                                    document.getElementById('slider_container').style.transform = 'translate3d(-' + (index * (window.innerWidth / 4 - 2.5)) + 'px, 0px, 0px)'
                                }
                            })
                        }
                        if (window.innerWidth < 700) {
                            document.getElementById('slider_container').style.width = (window.innerWidth * 4)
                            document.querySelector('.slider_next_btn').addEventListener('click', function() {
                                if (index < document.querySelectorAll('.post_box_slider').length - 2) {
                                    index++;
                                    document.getElementById('slider_container').style.transform = 'translate3d(-' + (index * (window.innerWidth / 2 - 4.5)) + 'px, 0px, 0px)'
                                }
                            })
                            document.querySelector('.slider_prev_btn').addEventListener('click', function() {
                                if (index > 0) {
                                    index--;
                                    document.getElementById('slider_container').style.transform = 'translate3d(-' + (index * (window.innerWidth / 2 - 4.5)) + 'px, 0px, 0px)'
                                }
                            })
                        }
    
                        function resizescreen() {
                            if (window.innerWidth > 700) {
                                index = 0;
                                document.getElementById('slider_container').style.width = (window.innerWidth * 2)
                                document.getElementById('slider_container').style.transform = 'translate3d(-' + (index * (window.innerWidth / 4 - 2.5)) + 'px, 0px, 0px)'
                    
                            }
                            if (window.innerWidth < 700) {
                                index = 0;
                                document.getElementById('slider_container').style.width = (window.innerWidth * 4)
                                document.getElementById('slider_container').style.transform = 'translate3d(-' + (index * (window.innerWidth / 2 - 4.5)) + 'px, 0px, 0px)'
    
                            }
                        }
                        window.addEventListener('resize', resizescreen);
                    }
                </script>
    • socidev
    socidev bunu beğendi.
    1 kişi bunu beğendi.
  • 02-04-2022, 15:51:36
    #2
    Denediniz mi bilmiyorum sadece şöyle birşey söyleyeyim. if(){}else if() yapar mısınız
    siz her ikisine de if koymuşsunuz
  • 02-04-2022, 15:53:44
    #3
    socidev adlı üyeden alıntı: mesajı görüntüle
    Denediniz mi bilmiyorum sadece şöyle birşey söyleyeyim. if(){}else if() yapar mısınız
    siz her ikisine de if koymuşsunuz
    daha önceden denemiştim hocam. Hatta tekrar denedim, olmadı maalesef.
  • 02-04-2022, 15:54:25
    #4
    Misafir adlı üyeden alıntı: mesajı görüntüle
    daha önceden denemiştim hocam. Hatta tekrar denedim, olmadı maalesef.
    team atarsan bağlanıp; bi incelemek isterim
  • 02-04-2022, 16:20:26
    #5
    Bağlanarak bana yardımcı olduğu için @socidev; 'e çok teşekkür ederim. İnşAllah uygulayıp sorunu çözdüğümde dönüş yapacağım
    • socidev
    socidev bunu beğendi.
    1 kişi bunu beğendi.
  • 02-04-2022, 16:26:44
    #6
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Bağlanarak bana yardımcı olduğu için @socidev; 'e çok teşekkür ederim. İnşAllah uygulayıp sorunu çözdüğümde dönüş yapacağım
    Ne demek, rica ederim ufak bi bilgi verdim.