Mam listę elementów wewnątrz ukrytego elementu div z przepełnieniem. Więc nie wszystkie elementy są widoczne. Teraz, jeśli element zostanie aktywowany, powinien stać się widoczny w div.Jak przewinąć ukryty element div do pewnego aktualnie niewidocznego elementu?
Jak przewinąć do aktywnego elementu za pomocą jQuery?
To tylko udogodnienie, że ostatni element ma aktywną klasę. Zostanie przełączony dynamicznie.
var scrollToEl = $("div.element.active");
console.log(zoomToEl);
#main,
#sidebar {
height: 200px;
}
#wrapper {
width: 190px;
float: left;
background: grey;
overflow: auto;
overflow-x: hidden;
}
#sidebar div.element {
height: 150px;
width: 150px;
background-color: green;
margin-bottom: 10px;
}
#sidebar div.element.active {
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="main">
<div id="wrapper" class="sidebar">
<div id="sidebar">
<div class="element" data-slide-id="0">a
</div>
<div class="element" data-slide-id="1">b
</div>
<div class="element" data-slide-id="2">c
</div>
<div class="element" data-slide-id="3">d
</div>
<div class="element" data-slide-id="4">e
</div>
<div class="element" data-slide-id="5">f
</div>
<div class="element" data-slide-id="6">g
</div>
<div class="element active" data-slide-id="7">h
</div>
</div>
</div>
</div>
Element, który powinien stać się widoczny:
var scrollToEl = $("div.element.active");
Wypróbowałem twoje demo, ale działa ono tylko raz, spróbuj powtórzyć, a zobaczysz dziwne zachowanie. Wydaje się, że naprawiono to za pomocą następującego kodu: $ ("# wrapper"). ScrollTop ($ ("# wrapper"). ScrollTop() + $ ("div.element.active"). Position(). Top); DEMO: http://jsfiddle.net/pA2Qh/ – Rob
Dobre łapanie, @Rob! Dzieje się tak dlatego, że kiedy przewija się do aktywnego div, to 'position.top' staje się 0. Następnym razem, gdy spróbujesz uruchomić ten kod, przewinie on do pozycji 0, rzeczywistej góry kontenera. Zaktualizowałem mój kod. – sachleen
@Rob, to jest świetne. Jest to najlepsze rozwiązanie dla przypadków, które mają "nadrzędny: 100% wysokości" i/lub "przepełnienie: ukryte" - co jest jak zawsze, w przypadku urządzeń mobilnych – KingJulian