从你的原代码,问题似乎是你正在寻找用于窗口上的垂直滚动(window.scrollY
);但是因为你的内容永远不会比窗口高,所以没有任何事情发生。
如果你在另一个div中包装你的容器,玩弄溢出,并添加一个监听器到包装,你可以实现你想要的(我认为)。
我用从here答案拿出一个工作小提琴:
http://jsfiddle.net/LSJxk/6/
HTML:
<div id="wrap">
<div id="container">
<div id="landingpage">
<p>Landing Page</p>
</div>
<div id="galone" class="vert"></div>
<div id="galtwo" class="vert"></div>
<div id="galthree" class="vert"></div>
<div id="galfour" class="vert"></div>
<div id="galfive" class="vert"></div>
<div id="galsix" class="vert"></div>
</div>
</div>
CSS:
#wrap {
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: hidden;
}
#container {
position: relative;
height: 200px;
width: 1000px; // the width of all your divs added together
}
的jQuery:
var scroller = {};
scroller.e = document.getElementById("wrap");
if (scroller.e.addEventListener) {
scroller.e.addEventListener("mousewheel", MouseWheelHandler, false);
scroller.e.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
} else scroller.e.attachEvent("onmousewheel", MouseWheelHandler);
function MouseWheelHandler(e) {
console.log('scroll');
// cross-browser wheel delta
var e = window.event || e;
var delta = - 20 * (Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))));
var pst = $('#wrap').scrollLeft() + delta;
if (pst < 0) {
pst = 0;
} else if (pst > $('#container').width()) {
pst = $('#container').width();
}
$('#wrap').scrollLeft(pst);
return false;
}
注意的陷阱,但:监听器是一个滚轮,它不会对触摸屏的工作。这会导致您的网站在iPhone/iPad/Surfaces /上无用,除非您包含另一个侦听器,或者将其包含在条件中,以便在启用触摸屏的设备上不触发。
对不起,但小提琴不起作用。 jQuery没有添加到小提琴中,没有'#second'元素。请包括所有演示代码的问题,它可能创建一个工作示例 – andyb