Mam ten kod, aby zachować element nagłówka u góry innego elementu, który przewija.Internet Explorer Jumpy Scrolling
Działa doskonale w przeglądarkach Firefox i Google Chrome, jednak w IE jest niesamowicie wzbierająco. Sam kod jest bardzo prosty i nie mogę myśleć, jak go poprawić.
W przeglądarce Chrome i Firefox nagłówek jest stale na stałe przez cały czas, jednak w IE skacze jak małe dziecko, które złapało torbę z cukrem.
nie mogę zmienić układ HTML z powodu funkcjonalności JQueryUI
sortable
Używam
W każdym razie, oto kod:
http://jsfiddle.net/0va4dn0q/8/
$('.container').scroll(function() {
var fromTop = $(this).scrollTop(),
Header = $(this).find('.header');
Header.css('margin-top', fromTop + 'px');
});
$('.sortable').sortable({
connectWith: '.sortable',
placeholder: 'ui-state-highlight'
});
div {
width:300px;
}
.sortable {
float:left;
margin:3px solid red;
min-height:200px;
}
.container {
height:200px;
overflow-x:hidden;
overflow-y:auto;
position:relative;
cursor:move;
}
.header {
position:absolute;
top:0;
background-color:orange;
height:20px;
text-align:center;
line-height:20px;
}
.main {
padding-top:20px;
color:white;
background-color:black;
height:1000px;
}
.ui-state-highlight {
height:200px;
}
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<div class="sortable">
<div class="container">
<div class="header">Header 1</div>
<div class="main">hello<br/>hello<br/>hello<br/></div>
</div>
<div class="container">
<div class="header">Header 2</div>
<div class="main">bye<br/>bye<br/>bye<br/></div>
</div>
</div>
<div class="sortable">
<div class="container">
<div class="header">Header 3</div>
<div class="main">splurge<br/>splurge<br/>splurge<br/></div>
</div>
<div class="container">
<div class="header">Header 4</div>
<div class="main">lorem ipsum<br/>dolor<br/>sit<br/></div>
</div>
</div>
+1 za udzielenie wspaniałej odpowiedzi na podstawie wszystkich podanych przeze mnie informacji. Irytujące jest tylko inne dziwactwo (/ ja płacze trochę). Nagłówki nie zawsze są używane jako uchwyt, ponieważ mogą być elementem interfejsu użytkownika (jQueryUI Slider) zamiast elementem tekstowym. Niestety, jeśli zdejmiesz opiekuna, a potem spróbujesz przeciągnąć pasek przewijania w dół, otrzymasz to: http://jsfiddle.net/yod3s5vm/5/ –
Ta odpowiedź, ale tylko wpadła mi na pomysł ... –
Dobrze. Jeśli pomysł się powiedzie, opublikuj go jako odpowiedź dla przyszłych czytelników. Jeśli utkniesz, daj mi znać, a przyjrzę się dalej. –