Losowe wybieranie zdjęć z foldera

0

Dzień dobry, czy mógłby mnie ktoś nakierować jak zrobić skrypt:

  • Który wyświetla po kliknięciu na button na stronie ,,losowe" obrazki z folderu img
  • Ale nie powtarzające się zbyt często np. obrazek może ale nie musi się powtórzyć dopiero po pokazaniu 5 innych.
  • I to wszystko bez odświeżania strony
    Robić to w DHTML czy Javascript czy może jakoś inaczej?
1

Jeśli chcesz bez przeładowania strony to AJAX. Użyj JS. Chcesz po prostu w JS mamy stronę mamy button jak ktoś kilka to losujemy tak? To w ogóle nie potrzebujesz chyba AJAX bo nijak nie łączysz się z backendem. Zobacz sam zakoduj sobie prostą stronę z divem nazwimy go "hello" daj tam tekst "hello dear unkitty"(mam ulotkę lego unkitty obok). Teraz napisz funkcję w js która będzie chować ten element lub go wyświetlać jeśli go nie ma po nacśnięciu.

W JS jest funkcja math.random. Musisz wiedzieć ile masz tych obrazków i ustawić odpowiedni zakres, tak samo aby były tylko inty. Jeśli nie masz z góry ustalonej liczby musisz zliczać ile ich jest.

W c/c++ musisz włączyć odpowiednia bibliotekę aby nie dostawać tych samych wyników odnośnie losowania. Jest to time.h czy jakoś tak.

Możliwe że w JS od razu dostaniesz inne wyniki wiesz że uruchomisz 1 raz no to 5 przeładujesz stronę i otrzymasz teraz 3 a nie piątkę.

Zaimplementuj to co powiedziałam na razie i zobacz czy problem występuję czy nie.

Podziel to sobie a kilka mniejszych zadań. Używaj debbugera do JS

0

A mógłbym prosić o jakiś kod bo dopiero zaczynam się uczyć javascript I nie bardzo wiem jak się za to zabrać

1

Musiałabym chyba napisać całość a wtedy to by była moja praca i mój kod a nie Twój.

Zacznij od html, stwórz diva w którym będziesz wyświetlał zdjęcie. Czy wiesz jak to zrobić w HTML? Jeśli nie poszukaj w google wpisz to co Ci przyjdzie do głowy nauka pisania zapytań do google wbrew pozorom jest istotna. Dodaj button, zobacz jak Ci się to wyswietla.

Poczytaj o obsłudze eventów w js, tablicach, jak załączyć kod js do HTML, funkcji math.random, ifach, modulo będzie Ci potrzebne do losowania liczb z określonego zakresu, innerHTML do zmiany zdjęcia.

Najpierw może zrób aby pokazywało Ci jeden obrazek.

Jeśli interesuje Cię gotowy kod skorzystaj z odpowiedniego działu na forum i dodaj to jako odpłatne zlecenie albo/i napisz do mnie na priv i dogadajmy się.

1

A co do czestotliwosci to mogłoby to wyglądać tak. Każdy obrazek powinien mieć licznik. Losujesz obrazek z puli obrazków które stan licznika maja równy 0. Po wylosowaniu danego obrazka zwiększasz licznik o 1 dla danego obrazka oraz dla wszystkich, które mają licznik większy niż 0. Gdy licznik dla danego obrazka dobije do 5, resetujesz go z powrotem do 0. Dzięki temu znów wraca do puli obrazków możliwych do wylosowania.

0

Dobra w porządku. Spróbuje coś sam zrobić. Dzięki za pomoc

2

Z nudów zrobiłem sobie to o co prosiłeś. Obczaj, przeanalizuj. Mam nadzieje, że się przyda ;)

        const btnPhoto = document.createElement('button');
        btnPhoto.innerText = 'Zmien zdjęcie';
        const fieldPhoto = document.createElement('div');
        document.body.appendChild(btnPhoto);
        document.body.appendChild(fieldPhoto);

        function getRandomArbitrary(min, max) {
            min = Math.ceil(min);
            max = Math.floor(max);
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }

        const imagesArray = [
            'image/photo1.jpg',
            'image/photo2.jpg'
        ];

        btnPhoto.addEventListener('click', () => {
            fieldPhoto.innerHTML = `<img src="${imagesArray[getRandomArbitrary(0, 1)]}">`;
        });
0

Jasne dzięki. Każda forma pomocy mi się przyda. Lubię się uczyć od bardziej doświadczonych

1 użytkowników online, w tym zalogowanych: 0, gości: 1