Я разрабатываю сайт на одну страницу, где я хочу разрешить 2 изображения в фиксированном положении в качестве "джойстика", чтобы разрешить навигацию вверх по mouseover
, я могу легко справиться с .scroll()
метода jquery .scroll()
и прокрутки jquery. В плагин
на странице у меня несколько якорей, я хочу иметь еще одно поведение - когда пользователь нажимает стрелку вверх или вниз, я хочу, чтобы страница прокручивалась до ближайшего якоря на странице - предыдущий якорь, когда пользователь нажимает на кнопка " вверх " и ближайший " якорь ", когда пользователь нажимает стрелку вниз.
поскольку мой скроллер установлен фиксированным, метод .closest()
не работает. есть ли способ выяснить ближайшие привязки в окне просмотра?
JS FIDDLE:
http://jsfiddle.net/8vW6n/1/
любая помощь должна быть высоко оценена
Вы могли бы попробовать что-то вроде этого:
$(".joystick .down").click(function(){
var anchors = $('.page > a');
var anchorPositions = [];
anchors.each(function(ind, anch){
anchorPositions.push(anch.getBoundingClientRect().top);
});
var i;
for(i=0;i<anchorPositions.length;i++)
if(anchorPositions[i] > 0) break;
console.log(anchors.eq(i));
//anchors.eq(i) is the closest anchor
});
var index = 1;
$(function () {
$(".joystick .up").hover(function () {
index--;
anc = "#anchor" + index;
if ($(anc).length) {
$('html, body').animate({
scrollTop: $(anc).offset().top
}, 2000);
} else {
index++;
}
}, function () {
});
$(".joystick .down").hover(function () {
index++;
anc = "#anchor" + index;
if ($(anc).length) {
$('html, body').animate({
scrollTop: $(anc).offset().top
}, 2000);
} else {
index--;
}
}, function () {
});
});
$("#button").click(function () {
$('html, body').animate({
scrollTop: $("#elementtoScrollToID").offset().top
}, 2000);
});
JSFIDDLE:
http://jsfiddle.net/dreamweiver/8vW6n/15/
Счастливое кодирование :)