Autor Zpráva
crooner
Profil *
Dobrý večer, mám opět oříšek, mám tento kód:
    $(document).ready(function() {
                $('#slideshow').cycle({
                fx: 'fade',
        prev:   '#preview',
        next:   '#next',
                pause:   1, 
                speed: 4000,
                timeout:  2000
         
            });            
        });
     
    </script>
pro automatické měnění image na úvodní straně, přidal jsem tlačítka předchozí a další. Vše funguje tak jak má, ale nevíte náhodou jak by se dalo udělat aby při stisknutí tlačítka se obrázek změnil pomocí jiného efektu? teď se mění pomocí fx: fade, tak aby se při stisknutí změnil pomocí např. fx: scroll?
shaggy
Profil
Prečo si myslíš, že každý na tomto fóre pozná všetky jQuery pluginy? Ja neviem, čo je to jQuery.cycle, netuším aké má možnosti a nastavenia (a keďže ty tušíš, o aký plugin ide, tak ti nič nebráni, aby si si pozrel dokumentáciu). Ak to v dokumentácii nie je/plugin to nepodporuje, tak si to budeš musieť doprogramovať.
crooner
Profil *
prečo si myslíš, že si môj otec, že sa mi snažíš dávať nepodstatné rady?


Pro ostatní, kteří by měli chuť se s tím zabývat, prošel jsem stovky zahraničních webů, vyzkoušel několikery postupy, ale bezúspěšně, proto doufám, že se najde někdo kdo s tím má zkušenost.
Kcko
Profil
crooner:
Mrkni se sem http://jquery.malsup.com/cycle/
http://jquery.malsup.com/cycle/options.html

Vyhotov nějaké demo když si nebudeš vedět rady a já se na to podívám.
crooner
Profil *
tak zásek, jak se prosím tvoří podmínka v jquery, když nastavení pluginu viz. první příspěvek je od fx, po timeout a samozřejmě spousta dalších možností, který momentálně automaticky mění obrázky, ale nevím jak udělat podmínku pro stisk tlačítka a zadat změnu efektu jen na stisknutí a pak vrátit kod zpět na automatické měnění s původním efektem. což už se mi s velkýma chybama povedlo, ale změnil se efekt na trvalo. někde jsem našel tuto nápovědu, ale nejsem z toho chytrej. tady muj kod, je to samozřejmě nesmyslně napsaný, ale aby jste pochopili o co mi jde:
$(document).ready(function() {
                $('#slideshow').cycle({
                fx: 'fade',
        prev:   '#preview',.click(function() {$('#slideshow').cycle({fx: 'scrollHorz', timeout: 1});});
        next:   '#next',
                pause:   1, 
                speed: 4000,
                timeout:  2000
                     });            
        });
a zde jsem našel nápovědu:http://stackoverflow.com/questions/3201996/jquery-cycle-use-two-different-effects-on-same-container
shaggy
Profil
crooner:
Napriek tomu, že nie som tvoj otec a ty sa správaš neskutočne drzo, tak ti zase poradím - prečo si to neskúsil podľa toho odkazu, ktorý si nám dal? Prečo ten kód píšeš inak? Tam to máš presne vysvetlené, ako to máš zapísať, čo čakáš od nás, že to odtiaľ prepíšeme sem?
On tam používa šípky doprava a doľava, ty chceš iba jeden smer, tak použiješ iba jeden "odkaz", nič zložité.
Jan Kupka
Profil
Ahoj, plugin tuhle možnost zabudovanou do sebe nemá, musíš si to doprogramovat sám. Buď můžeš použít postup ze Stack Overflow nebo to můžeš provést třeba takhle:

http://jsfiddle.net/jankupka/zjtXV/

V options objektu, který předáváš do cycle metody, vlastnosti "prev" a "next" neuváděj, to jen nabinduje click eventy na ovládací tlačítka. Ty tam ale potřebuješ vpasovat ještě tu změnu efektu.
shaggy
Profil
Jan Kupka:
Uvedomuješ si, že ten tvoj zápis je takmer totožný, ako na SO, akurát si to zbytočne obalil do x anonymných funkcií?
crooner
Profil *
děkuji, postup ze Stack Overflow, jsem samozřejmě zkusil! A samozřejmě funguje, bohužel pouze na automatický cyklus, při změně "div.right_arrow a" a ...left_arrow.... na mé id což je preview a next bohužel tlačítka nefungují. Honzo děkuji,ale i tvůj způsob reaguje pořád stejně budu tam mít někde chybu. Hodím sem kod, mě to přijde všechno stejný:/


jquery
var slideIndex = 0;
var nextIndex = 0;
var prevIndex = 0;
$(document).ready(function() {
$('#slideshow').cycle({
    fx: 'fade',//fx: 'scrollHorz', // choose your transition type, ex: fade, scrollUp, shuffle, etc...
    timeout: 8000,
    speed: 1000,
    easingIn:20,
    easingOut:40,
    after: function(currSlideElement, nextSlideElement, options) {
        slideIndex = options.currSlide;
        nextIndex = slideIndex + 1;
        prevIndex = slideIndex -1;

        if (slideIndex == options.slideCount-1) {
            nextIndex = 0;
        }

        if (slideIndex == 0) {
            prevIndex = options.slideCount-1;
        }
    }
});
}); 

$('#next').click(function () {
    $('#slideshow').cycle(nextIndex, "scrollRight");
});

$('#preview').click(function () {
    $('#slideshow').cycle(prevIndex, "scrollLeft");
}); 

a html
<a id="preview" href="#"><div class="preview"></div></a>
      <a id="next" href="#"><div class="next"></div></a>
      <div id="slideshow">
    <div class="bg1"></div>
    <div class="bg2"></div>
    <div class="bg3"></div>
  <div class="bg4"></div>
  <div class="bg5"></div>
</div>
Jan Kupka
Profil
crooner:

Bindování eventů:

$('#next').click(function () {
    $('#slideshow').cycle(nextIndex, "scrollRight");
});
 
$('#preview').click(function () {
    $('#slideshow').cycle(prevIndex, "scrollLeft");
});

i deklaraci proměnných:

var slideIndex = 0,
    nextIndex = 0,
    prevIndex = 0;

zařaď do anonymní funkce v $(document).ready().

Pokud tomu správně rozumím, obrázky se ti mění, jen ti nefungují tlačítka? Je možné, že máš někde chybu v JS (mimo kód, co jsi sem vložil), třeba překlep nebo zapomenutý znak. Podívej se do konzole, jestli tam není něco vypsané (Firefox - CTRL+Shift+K / F12 pokud máš Firebug addon, Chrome - F12 a pak ESC).
crooner
Profil *
ach jo ach jo, obrázky se mění, i šipky fungují, ale jen když chci efekt stejný, já potřebuji automatické měnění obrázku s jedním efektem, ale když se klikne na šipku tak aby se obrázek změnil s jiným efektem


konzole žádnou chybu nepíše


Tady to je! http://jsfiddle.net/trepmal/2pmXe/ A já to mam stejně. A mě to prostě co? mě to nefunguje!:/
Jan Kupka
Profil
crooner:

No, máš tu fiddle s mým kódem, který vidíš, že funguje. Pak tu máš fiddle od Trepmala, který obsahuje kód ze SO a taky funguje. Pokud to máš stejně, tak to musí fungovat i tobě :-) Pokud ne, tak je chyba někde jinde a asi to tu nevyřešíme (zvlášť, když v konzoli není žádný error). Poslední věc, která mě napadá je ta, že nenačítáš full verzi Cycle pluginu, ale jen verzi lite a ta neobsahuje přechodový efekty, který se snažíš použít.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: