Ho questo codice per mantenere un elemento di titolo nella parte superiore di un altro elemento che scorre.Internet Explorer Jumpy Scrolling
Funziona perfettamente in Firefox e Google Chrome, tuttavia in IE è estremamente strambo. Il codice stesso è molto semplice e non riesco a pensare a come migliorarlo potenzialmente.
In Chrome e Firefox l'intestazione si trova in cima sempre in modo permanente, tuttavia in IE salta intorno come un bambino piccolo che ha afferrato il sacchetto di zucchero.
non posso cambiare il layout HTML a causa della funzionalità JQueryUI
sortable
sto usando
Comunque, ecco il codice:
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 per dare un'ottima risposta in base a tutte le informazioni che ho fornito. Fastidiosamente c'è solo un'altra stranezza (/ me piango un po '). Le intestazioni non vengono sempre utilizzate come handle poiché possono essere un elemento dell'interfaccia utente (jQueryUI Slider) anziché un elemento testuale. Sfortunatamente se togli il gestore e provi a trascinare la barra di scorrimento verso il basso, ottieni questo: http://jsfiddle.net/yod3s5vm/5/ –
Questa risposta mi ha appena dato un'idea ... –
Buono. Se l'idea funziona, pubblicala come risposta per i futuri lettori. Se ti blocchi, fammelo sapere e darò un'ulteriore occhiata. –