Jquery tinyscrollbar.js的键盘控件

Jquery tinyscrollbar.js的键盘控件,jquery,keyboard-events,tinyscrollbar,Jquery,Keyboard Events,Tinyscrollbar,我想为小小的滚动条脚本添加键盘控件。我不太擅长javascript。我知道我可以使用jquery keypress()函数截取箭头键(38,40),然后通过更改其css top属性滚动overview div 我可以在tinyscrollbar插件之外完成这项工作,但我希望使用插件中已有的功能来完成这项工作 关于如何开始这项工作的任何指导都将是一个很大的帮助。谢谢 有关更多信息,请查看。和。您必须扩展此插件以支持按键和上键事件,并添加根据这些按键滚动的功能。插件中当前的滚动功能直接与使用鼠标或鼠

我想为小小的滚动条脚本添加键盘控件。我不太擅长javascript。我知道我可以使用jquery keypress()函数截取箭头键(38,40),然后通过更改其css top属性滚动overview div

我可以在tinyscrollbar插件之外完成这项工作,但我希望使用插件中已有的功能来完成这项工作

关于如何开始这项工作的任何指导都将是一个很大的帮助。谢谢


有关更多信息,请查看。和。

您必须扩展此插件以支持按键和上键事件,并添加根据这些按键滚动的功能。插件中当前的滚动功能直接与使用鼠标或鼠标滚轮进行拖动有关

或者,您可以使用其他内置键盘事件的设备。
例如,

我在插件中添加了一个新功能,并用它来更新scroll on keydown事件

添加到插件的代码:

// define the added function
 jQuery.fn.tinyscrollbar_updatescroll = function(sScroll)
{
    return jQuery( this ).data( 'tsb' ).updatescroll( sScroll ); 
};
// end of added function definition

function Scrollbar( root, options )
{
    var oSelf       = this
    ,   oWrapper    = root
    ,   oViewport   = { obj: jQuery( '.viewport', root ) }
    ,   oContent    = { obj: jQuery( '.overview', root ) }
    ,   oScrollbar  = { obj: jQuery( '.scrollbar', root ) }
    ,   oTrack      = { obj: jQuery( '.track', oScrollbar.obj ) }
    ,   oThumb      = { obj: jQuery( '.thumb', oScrollbar.obj ) }
    ,   sAxis       = options.axis === 'x'
    ,   sDirection  = sAxis ? 'left' : 'top'
    ,   sSize       = sAxis ? 'Width' : 'Height'
    ,   iScroll     = 0
    ,   iPosition   = { start: 0, now: 0 }
    ,   iMouse      = {}
    ,   touchEvents = 'ontouchstart' in document.documentElement
    ;

    function initialize()
    {
        oSelf.update();
        setEvents();

        return oSelf;
    }

    // the new added function using the wheel function
    this.updatescroll = function( sScroll )
    {
        if( oContent.ratio < 1 )
        {

            iScroll -= sScroll;
            iScroll = Math.min( ( oContent[ options.axis ] - oViewport[ options.axis ] ), Math.max( 0, iScroll ));

            oThumb.obj.css( sDirection, iScroll / oScrollbar.ratio );
            oContent.obj.css( sDirection, -iScroll );

        }
    };
    // end of added function
jQuery('body').keydown(function (event) {
    if (event.keyCode == 38) {
      // up arrow
      $('#scrollbar1').tinyscrollbar_updatescroll(40);
    } else if (event.keyCode == 40) {
     // down arrow
     $('#scrollbar1').tinyscrollbar_updatescroll(-40);
    }
  });
tinyscrollbar_updatescroll将内容滚动到当前位置加上发送给它的金额。最初的tinyscrollbar_update函数将内容滚动到以像素为单位的特定位置