從你的原代碼,問題似乎是你正在尋找用於窗口上的垂直滾動(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