当用户按下右箭头键时,如何让jquery幻灯片显示转到下一张幻灯片

时间:2012-07-12 19:40:02

标签: jquery slideshow keyboard-events next keyup

好的,这就是场景,我希望用户能够按下键盘上的左右箭头键并使页面上的jquery幻灯片触发下一张幻灯片。我想使用右箭头键,但除了输入,空格或制表符之外的任何键都可以(我只想要一键做这个)。我在想像

$('#target').keyup(function(event){.doslide();}

或任何帮助将不胜感激。

<script type="text/javascript">
                            var slo=null;
                            var sola = Array();
                            var prev = 0;
                            var cur = 1;
                            var timi=null

                            jQuery.noConflict()
                            jQuery(document).ready(function() {
                                sol = $(".slide")
                                var sho = document.getElementById('slidya').getElementsByTagName('a');

                                for(var i=1;i<sho.length-1;i++)sola.push(sho[i]);

                                for(var i=1;i<sol.length;i++)sol[i].style.display = 'none';                        

                                timi = window.setInterval('doslide()',10000);

                            })
                            function doslide()
                                {
                                    $(sol[prev]).fadeOut(3000);
                                    $(sol[cur]).fadeIn(3000);
                                    sola[prev].className = 'number'
                                    sola[cur].className = 'number select'

                                    prev = cur++;
                                    if(cur>sol.length-1)
                                    {
                                        cur=0;
                                        prev= sol.length-1;
                                    }
                                }
                                function prevnext(mode)
                                {
                                    window.clearInterval(timi);timi=null;

                                    if(mode)
                                    {
                                        if(cur>sol.length-1)
                                        {
                                            cur=0;
                                            prev= sol.length-1;
                                        }
                                        doslide();      
                                    }
                                    else
                                    {
                                        cur--;
                                        prev--;

                                        if(prev<0)
                                        {
                                            cur=0;
                                            prev= sol.length-1;
                                        }
                                        if(cur<0)
                                        {
                                            cur=sol.length-1;
                                            prev=cur-1 ;        
                                        }

                                        $(sol[cur]).fadeOut(3000);
                                        $(sol[prev]).fadeIn(3000);
                                        sola[cur].className = 'number'
                                        sola[prev].className = 'number select' 
                                    }
                                    timi = window.setInterval('doslide()',10000)
                                }
                                function thisisit(aiyo)
                                {
                                    cur = aiyo
                                    window.clearInterval(timi);timi=null;

                                    $(sol[cur]).fadeIn(1000);
                                    $(sol[prev]).fadeOut(1000);
                                    sola[cur].className = 'number select'
                                    sola[prev].className = 'number'

                                    prev=cur
                                    ++cur;
                                    if(prev<0)prev = sol.length-1;
                                    timi = window.setInterval('doslide()',10000)     
                                }


                        </script>

1 个答案:

答案 0 :(得分:1)

我会尝试这样的事情:

var VK_LEFT = 37,
    VK_UP =  38,
    VK_RIGHT =  39,
    VK_DOWN = 40;

$(document).keydown(function(e){
   var key = (e.keyCode ? e.keyCode : e.which);

   if(key==VK_RIGHT)
       doslideright();
   else if(key==VK_LEFT)
       doslideleft();
});