jquery-ui - 动画 jQuery UI 可排序使用 CSS3 转换

标签 jquery-ui css jquery-animate css-transitions jquery-ui-sortable

如何使用 CSS3 转换(或任何其他方式)制作 jQuery Sortable更像是 iOS 中的列表重新排序,其中列表项在拖动时平滑地动画,所以元素在您拖动时匆匆离开?

[编辑以将其变成常见问题解答并为其他想要解决此问题的人节省时间]

最佳答案

https://gist.github.com/801570显示如何使用 jQuery Sortable 平滑地动画拖动.当您拖动时,元素会迅速闪开。它使用 CSS3 Transitions效果正是我想要的。很酷。

代码如下:

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; }

脚本:

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'}));
    }
});

关于jquery-ui - 动画 jQuery UI 可排序使用 CSS3 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261889/

相关文章:

javascript - 超时-Dialog.js 问题

css - 如何让 td 单元足够高以容纳内容

javascript - 显示超链接时显示 div 的 jQuery

javascript - 使javascript动画条与动画百分比同步

javascript - jQuery 用户界面 : How can I know that the div are center on drag event

javascript - jQuery 对话框 UI 无限滚动到顶部

jquery - 如何在 jquery 中使用淡入淡出进行前置?

javascript - 获取 jQuery 集合中最宽的元素

jquery - 如何为 css 倾斜转换添加 jquery 回退?

jQuery 动画背景位置