/ / jQuery Инструменти - Вертикален скролър Един елемент твърде дълъг - javascript, jquery, css

jQuery Tools - Vertical Scroller Една точка твърде дълго - javascript, jquery, css

Попитах това в официалния форум на jQuery Tools миналата седмица, но определено не е толкова активен като stackoverflow, така че си мислех, че ще попитам и тук.

На страниците с подробности за проекта ние динамичнозареждане на съдържание, което използва вертикален скролър за навигация. Проблемът е, че височината на вертикалния скролер винаги изглежда като един елемент твърде висок. Не мога да намеря никакъв начин да повлияе на това програмно.

Ако го поставя в кръгла форма на истина, изглежда, че има правилната височина, но не искаме тя да бъде непрекъсната / кръгла.

Пример тук: http://www.centerline.net/projects/detail/?p=21

Неопределеният JS е тук: http://www.centerline.net/lib/js/site-unmin.js

Някакви идеи?

Тук е представен изглед на това как трябва да изглежда при превъртане до последния елемент (стрелката надолу изчезва и не позволява празно място под последната миниатюра. Поправете точката за спиране на вертикалния скролер

Отговори:

1 за отговор № 1

Решението по-горе изглеждаше, че щеше да работи, но и намери решение тук:

http://www.jasoncarr.com/technology/jquery-tools-scrollable-stop-scrolling-past-the-end

Действителният код на сайта ми беше такъв:

$(function() {
// Initialize the Scrollable control
$(".scroll").scrollable({vertical:true, mousewheel:true, keyboard:true });

// Get the Scrollable control
var scrollable = jQuery(".scroll").data("scrollable");

// Set to the number of visible items
var size = 2;
// Handle the Scrollable control"s onSeek event
scrollable.onSeek(function(event, index) {

// Check to see if we"re at the end
if (this.getIndex() >= this.getSize() - size) {

// Disable the Next link
jQuery("a.next").addClass("disabled");
}
});

// Handle the Scrollable control"s onBeforeSeek event
scrollable.onBeforeSeek(function(event, index) {

// Check to see if we"re at the end
if (this.getIndex() >= this.getSize() - size) {

// Check to see if we"re trying to move forward
if (index > this.getIndex()) {
// Cancel navigation
return false;
}
}
});

});

0 за отговор № 2

За съжаление броят на divs в.контейнерът items трябва да се дели на броя на елементите, които искате да се показват едновременно. Така че имате 3 divs, но показвате 2 елемента едновременно. Ето защо скролируемият плъгин се повреди. Можете да отворите неидентифицирания източник и да го промените малко, което няма да бъде много трудно.

Или по-простото решение би било или да се добави нов div и да се направи 4 до 2.

Или Пуснете броя на елементите, които показвате по време на 1, и увеличете височината на вашите divs.

Използването на друг плъгин също може да работи.

Надявам се, че помага


0 за отговор № 3

Проблемът е, че инструментите jQuery проследяват всички изображения. А след последните изображения има просто празно пространство.

Опитайте да добавите това към превъртащия се конструктор

$(".scroll").scrollable({
onBeforeSeek: function(e, index) {
if (index == $(".items").size()) {
return false;
}
},
onSeek: function(e, index) {
if (index == $(".items").size()-1) {
$(".next").hide(0);
} else {
if ($(".next").is(":hidden")) {
$(".next").show();
}
}
}
});

ИЛИ

api = $(".scroll").scrollable({
//your setup code
});

api.onBeforeSeek: function(e, index) {
if (index == this.getSize()) {
return false;
}
}
api.onSeek: function(e, index) {
if (index == this.getSize()-1) {
$(".next").hide(0);
} else {
if ($(".next").is(":hidden")) {
$(".next").show();
}
}
}

Опровержение: Нямам експерт. Не съм тествал това. Вашият код е сведена до минимум, не може да го види ясно. Едва ли използвам jQuery инструменти.