javascript - jQuery 在演示期间使用箭头键滚动

标签 javascript jquery html

我正在使用 HTML 为我正在处理的项目创建演示文稿。演示文稿将是整页幻灯片,我想用 jQuery 实现一个脚本,以便在按下箭头键时,它可以在幻灯片之间平滑滚动。显然,左边是上一张幻灯片,右边是下一张幻灯片。

我写了一个脚本,但它只在第一次运行。我是 jQuery 的新手,我似乎无法修复它。

<script type="text/javascript">
$(document).keydown(function(e){
if (e.keyCode == 37) { 
   $('.slide').prev().ScrollTo({
        duration: 2000,
        easing: 'linear'
    });
}
if (e.keyCode == 39) { 
   $('.slide').next().ScrollTo({
        duration: 2000,
        easing: 'linear'
    });
    }
});
</script>

最佳答案

看这个例子:http://jsfiddle.net/kevalbhatt18/0tue685a/

$(document).keydown(function (e) {
    // console.log($('[class ^=slide]'))

    if (e.keyCode == 37) {
        if ($('#container').find('.scroll').prev()[0]) {
            $("html, body").animate({
                scrollTop: $($('#container').find('.scroll').prev()[0]).offset().top
            }, 1000);
            console.log($($('#container').find('.scroll').prev()[0]).addClass('scroll'))
            console.log($($('#container').find('.scroll')[1]).removeClass('scroll'))
        } else {
            $("html, body").animate({
                scrollTop: $($('#container').children()[$('#container').children().length - 1]).offset().top
            }, 1000);
            $($('#container').children()[$('#container').children().length - 1]).addClass('scroll')
            $($('#container').find('.scroll')[0]).removeClass('scroll')


        }



    }
    if (e.keyCode == 39) {
        if ($('#container').find('.scroll').next()[0]) {
            $("html, body").animate({
                scrollTop: $($('#container').find('.scroll').next()[0]).offset().top
            }, 1000);
            $($('#container').find('.scroll').next()[0]).addClass('scroll')
            $($('#container').find('.scroll')[0]).removeClass('scroll')
        } else {
            $("html, body").animate({
                scrollTop: $($('#container').children()[0]).offset().top
            }, 1000);

            $($('#container').children()[0]).addClass('scroll')
            console.log($($('#container').children()[0]))
            $($('#container').find('.scroll')[1]).removeClass('scroll')
        }
    }
});

关于javascript - jQuery 在演示期间使用箭头键滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174871/

相关文章:

javascript - 在express.js中,res.render()不起作用

jQuery - 悬停不工作

javascript - Cordova WebView,打开InAppBrowser并同时发布表单

javascript - 如何比较javascript中的两个字符串日期?

javascript - Ascensor.js IE8

c# - OnClientClick 阻止 OnClick 事件?

html - 在 Elm 中使用 Color 对象更改 HTML 元素颜色的标准方法是什么?

javascript - 如何在段落淡入后立即淡出该段落?

Javascript智能过滤对象数组

javascript - 如何为 chrome 扩展制作粘性弹出窗口