2016-01-27 2 views
3

Я использую jQuery.kinetic, чтобы разрешить прокрутку div в своем родительском div, перетаскивая мышь, подобно demo on the author's site. По умолчанию, когда страница загружается, верхний левый угол внутреннего div выравнивается с верхним левым углом родительского div (это означает, что он прокручивается как можно дальше и слева). Как это:jQuery.kinetic - Как предварительно прокрутить до позиции при загрузке страницы

default

Я хотел бы «предварительной прокрутки», когда страница загружает определенное количество пикселей над тем, что внутренний ДИВ грубо по центру. Что-то вроде этого:

new

Я ничего в документации не видя о возможности указать стартовую позицию для внутреннего ДИВ, но это выглядит как автор jQuery.kinetic построен таким образом, чтобы расширить плагин за функциональность по умолчанию, как это:

$.Kinetic.prototype.newFeature = function(options){ 
    // define the task 
}; 

Тогда я могу назвать эту функциональность:

// use the method 
$('#elem').kinetic('newFeature', { options }); 

Есть ли способ установить положение на загрузке страницы, которое мне не хватает? Если нет, как я могу расширить плагин, чтобы делать то, что хочу?

Спасибо!

+0

Не работает, чтобы дать внутренний div отрицательный «margin-left»? – digglemister

+0

@snookieordie - Я дважды проверю утром, но если он работает, как регулировка 'left', он будет правильно перемещать изображение, но не позволит мне прокручивать назад до отрезанной части. – TheIronCheek

+0

@snookieordie - да, вот и все. – TheIronCheek

ответ

2

Мне потребовалось время, чтобы понять, что у кинетического плагина есть встроенные возможности для ручного прокрутки контейнера. Это не где-нибудь в документации, но, проверяя код плагина, я заметил, что у него есть методы для управления прокруткой по оси x и y.

В файле jquery.kinetic.js из строки 458 - 475 (на момент написания) определены методы scrollLeft и scrollTop. https://github.com/davetayls/jquery.kinetic/blob/master/jquery.kinetic.js#L458

Вы можете использовать их в контейнере с уже активным экземпляром Kinetic, вызвав следующие методы:

$("container-selector").kinetic("scrollLeft", 50); 
$("container-selector").kinetic("scrollTop", 480); 

Это стоит пройти через Kinetic код и выяснить, как она работает и что функциональные возможности доступный для использования в более полной документации.

Смежные вопросы