obsługa zdarzenia "DOMMouseScrolll" w javaScript

0

Witam wszystkich i proszę o pomoc,
Potrzebuję zastąpić w swoim kodzie zdarzenie "onmousewheel" na " DOMMouseScroll" tak aby skrypt działał w Mozilla Firefox i nie wiem jak to dokładnie zrobić:/ Poniżej wklejam omawiany fragment kodu:

scroll_icon.onmousewheel = function() {

    container_teksty.onmousewheel = function() {
        var losowyCytat = Math.floor(Math.random()*5);
        var losowyCytat2 = Math.floor(Math.random()*5);
        var losowyCytat3 = Math.floor(Math.random()*5);
        var losowyCytat4 = Math.floor(Math.random()*5);
        var losowyCytat5 = Math.floor(Math.random()*5);
        teksty.innerHTML = cytaty[losowyCytat];
        teksty2.innerHTML = cytaty2[losowyCytat2];
        teksty3.innerHTML = cytaty3[losowyCytat3];
        teksty4.innerHTML = cytaty4[losowyCytat4];
        teksty5.innerHTML = cytaty5[losowyCytat5];

        scroll_icon.style.visibility  = "hidden";
    }
};

1

Nie "DOMMouseScrolll", a "DOMMouseScroll". Nie trzy "l", a dwa.

0

Ponownie chciałbym zwrócić się z prośbą o pomoc,
Mianowicie potrzebuję zastąpić w swoim kodzie zdarzenie "onmousewheel" na " DOMMouseScroll" tak aby skrypt działał w Mozilla Firefox i nie wiem jak to dokładnie zrobić:/ Poniżej wklejam omawiany fragment kodu:

scroll_icon.onmousewheel = function() {

    container_teksty.onmousewheel = function() {
        var losowyCytat = Math.floor(Math.random()*5);
        var losowyCytat2 = Math.floor(Math.random()*5);
        var losowyCytat3 = Math.floor(Math.random()*5);
        var losowyCytat4 = Math.floor(Math.random()*5);
        var losowyCytat5 = Math.floor(Math.random()*5);
        teksty.innerHTML = cytaty[losowyCytat];
        teksty2.innerHTML = cytaty2[losowyCytat2];
        teksty3.innerHTML = cytaty3[losowyCytat3];
        teksty4.innerHTML = cytaty4[losowyCytat4];
        teksty5.innerHTML = cytaty5[losowyCytat5];

        scroll_icon.style.visibility  = "hidden";
    }
};

1
twójElement.addEventListener("DOMMouseScroll", scroll_icon.onmousewheel);

Co to jest to "scroll_icon"? HTMLElement?

0

Tak, "scroll_icon" to jest dokładnie id w HTMLu. Tam generalnie wygląda to tak, że jak scrollujemy na obrazku(o id "scroll_icon") to uruchami się funkcja która z kolei polega na tym, że scrollując na

(o id "container_teksty") losuje cytaty i znika "scroll_icon".</p>
0

Czy mógłby ktoś napisać jak zmienić mój kod, żeby działał w Mozilla Firefox??

1

Jeśli to jest id, to Twój kod nie zadziała w żadnej przeglądarce. Nie ma czegoś takiego, jak zmienna o nazwie takiej samej, jak id Twoich elementów. Wciśnij F12, otwórz konsolę i zobacz z jakim błędem wywala się Twój kod.
Twój element istnieje tylko w drzewie DOM. Trzeba go stamtąd pobrać do zmiennej w js, w "gołym" js var htmlElement = document.getElementById("tutajIdTwojegoElementu");, z pomocą jQuery var htmlElement = $("#tutajIdTwojegoElementu");. Jeśli już masz element, to trzeba podpiąć się do odpowiedniego zdarzenia, którym element rzuca. Tu polecam doczytać jak działa event handling w js, bo brakuje Ci podstaw i być może będziesz mieć problem ze zrozumieniem tego, co dalej napiszę. W gołym js podepniesz handler do zdarzenia metodą addEventListener (element.addEventListener("nazwaZdarzenia", handler)), w jQuery do najczęściej używanych eventów są gotowe metody (click, keyup, change itp. - polecam lekturę dokumentacji), resztę podepniesz poprzez on albo bind (element.on("DOMMouseScroll", function(e) { console.log(e); }), on("mousewheel", handler), albo od razu do dwóch typów zdarzeń: on("DOMMouseScroll mousewheel", function() { tuTwójKodObsługującyObracanieKółkiem });).

BTW Twój problem już dawno rozwiązano, wystarczy chwilę poszukać: https://stackoverflow.com/questions/8189840/get-mouse-wheel-events-in-jquery, wersja na jQuery: $(element).on('wheel', function(e){});.

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