我有图像(垂直)的线性表,我搜索使用键盘向上和向下导航到下一个或上一个图像。 我的问题是,我不知道我在滚动,并在那里我需要滚动到进入下一个或上一张图片。
我看到了这个例子 ,但它的水平。 我试图使它垂直,但没有成功...
我也尝试过一些事情与inView jQuery插件,都没有成功过。 一些开始:
$("body:not(.photo) #images img").each(function() {
$(this)
.css({cursor: "pointer"})
.on("click", function() {
var $n = $(this).next(),
offset = ($n.length) ? $n.offset().top : 0;
scrollTo(offset);
});
});
// http://jsfiddle.net/JjhUN/5/
var elems = [];
$("#images").children().each(function() {
elems.push(this.offsetTop);
});
console.log(elems);
我打与该水平为例,将其更改为垂直。 http://jsfiddle.net/6gCA6/1/
我希望这是有益的。
JS
$(function() {
var boxLefts = [];
$('.box').each(function(i, el){
boxLefts.push(this.offsetTop);
});
$(document).keydown(function(e) {
var dir = false,
targetUp = -1;
switch (e.keyCode) {
case 38:
dir = -1;
break;
case 40:
dir = 1;
break;
default:
break;
}
if (dir) {
e.preventDefault();
winUp = window.scrollY;
$.each(boxLefts, function(i, v){
if ((dir == 1 && winUp < v && targetUp < 0) ||
(dir == -1 && winUp > v)) {
targetUp = v;
}
});
if (targetUp >= 0) {
$('html, body').animate({scrollTop: targetUp}, 1000);
}
}
});
});
CSS
#wrapper {
white-space: nowrap;
width: 1500px;
}
.box {
width: 200px;
height: 200px;
border: 1px solid red;
margin: 0 10px 0 0;
/*display: inline-block;*/
}