https://gist.github.com/801570 cho thấy làm thế nào để trơn tru động kéo sử dụng jQuery Sortable. Vật phẩm chạy ra khỏi đường khi bạn kéo. Nó sử dụng CSS3 Transitions và hiệu quả là chính xác những gì tôi đang tìm kiếm. Rất tuyệt.
Dưới đây là các mã:
JSFIDDLE:
http://jsfiddle.net/LTWMp/
HTML:
<style name="impostor_size">
.marker + li { border-top-width:0px; }
</style>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
CSS:
body { color:white; font-family:Helvetica, sans-serif; padding: 10px}
ul { float:left; width:300px; overflow:hidden; border-radius:6px; }
li { display:block; position:relative; padding:12px 6px; z-index:1; margin:5px 20px; }
li:after { background:#18629D; display:block; position:absolute; height:100%; width:100%; top:0px; left:0px; content:' '; border-radius:6px; z-index:-1; }
li { -moz-transition:border-top-width 0.1s ease-in; -webkit-transition:border-top-width 0.1s ease-in; border-top:0px solid rgba(0,0,0,0); }
.marker { opacity:0.0; }
Script:
var stylesheet = $('style[name=impostor_size]')[0].sheet;
var rule = stylesheet.rules ? stylesheet.rules[0].style : stylesheet.cssRules[0].style;
var setPadding = function(atHeight) {
rule.cssText = 'border-top-width: '+atHeight+'px';
};
$('ul').sortable({
'placeholder':'marker',
'start':function(ev, ui) {
setPadding(ui.item.height());
},
'stop':function(ev, ui) {
var next = ui.item.next();
next.css({'-moz-transition':'none', '-webkit-transition':'none', 'transition':'none'});
setTimeout(next.css.bind(next, {'-moz-transition':'border-top-width 0.1s ease-in', '-webkit-transition':'border-top-width 0.1s ease-in', 'transition':'border-top-width 0.1s ease-in'}));
}
});
Nguồn
2012-11-08 05:45:47
Dưới đây là một ví dụ khác của [Steve Sanderson] (http://blog.stevensanderson.com/2013/03/15/animating -list-with-css-3-transitions /) - Các danh sách hoạt ảnh với quá trình chuyển đổi CSS 3 –
có thể trùng lặp của [Animate transitions for UI's sortable list] (http://stackoverflow.com/questions/12942520/animate-transitions-for- uis-sortable-list) –