Ich versuche, ein gleitendes horizontales Layout mit einem Header-Banner zu implementieren.Sliding Horizontal responsive Layout und MouseWheel Eingabe
Dies ist die HTML-Struktur:
<body>
<div id="header">
<div><a href="#one"> one </a></div>
<div><a href="#two"> two </a></div>
<div><a href="#thr"> thr </a></div>
</div>
<div id="one" class="panel"> </div>
<div id="two" class="panel"> </div>
<div id="thr" class="panel"> </div>
</body>
Der Header festgelegt ist, und Platten wurden mit einem Gradienten Hintergrund (mittlere Tafel hat eine andere Farbe für Debug-Zwecke) zur Verfügung gestellt. Hier ist die CSS:
body {
width: 6000px;
overflow: hidden;
}
.panel {
width: 33.3%;
float: left;
padding-left: 30px;
padding-right: 1040px;
margin-top: -75px;
height: 960px;
background-image: linear-gradient(to bottom, #0B88FF, #95EEFF);
}
#header {
position: fixed;
height: 75px;
margin-top: 25px;
}
#two{
background-image: linear-gradient(to bottom, #0B8800, #9E5EFF);
}
Und schließlich die Funktion, die die Animation zwischen den Platten verwaltet:
$(document).ready(function() {
$("#header a").bind("click", function(event) {
event.preventDefault();
var target = $(this).attr("href");
$("html, body").stop().animate({
scrollLeft: $(target).offset().left,
scrollTop: $(target).offset().top
}, 1200);
});
});
Die Probleme, die ich bin vor sind die folgenden:
1) Ich habe versucht, implementieren Sie eine jQuery-Funktion zum Ausführen der Folie Animation, wenn Benutzer das Mausrad verwendet, aber keiner meiner Tests funktioniert ... die Struktur ist immer die gleiche:
$(window).scroll(function() {
if ($(this).scrollTop() > 0) {
var target // still not able to figure out who should i target
$("html, body").stop().animate({
//to the target >,<
}
});
2) Wenn mein Browser-Fenster bei 100% ist, scheint Größe alles gut zu funktionieren, aber wenn ich den Zoom alles vermasseln> verringern oder erhöhen, < Ich stelle fest, es möglich ist, dies zu handhaben, und here is an example: