emmmmm 感觉自己是个被java耽误了的前端
闲话少说 进入正题
工作中有的时候需要实现一个拖拽功能 比如你有一个列表 然后忽然客户说 改需求了 这个列表顺序要变 你也不能说整个删了重新写一个列表吧 这多绝望啊 就有了几个解决方案:
1.弄个图标上移下移
function move(obj,fx)
{
var parent = $(obj).parents(".ui-state-default");
if(fx == 'up')
{
var prev = parent.prev();//取得同辈相邻前一个
prev.before(parent);
}else
{
var next = parent.next();
next.after(parent);
}
//移完更新+-号的显示
checkTuBiaoIsOkay();
}
那个checkTuBiaoIsOkay纯粹是我个人强迫症 觉得第一个不能往上移就不要+号或者上箭头符号什么的 最后一个不能下移就不用-号或者下箭头什么的
这种写起来是很简单的 但是用起来就会觉得 好麻烦哦 得一个个点移动 一次还只能移动一位
反正我要是客户 我肯定会投诉的 你们什么垃圾系统 用户体验这么差
所以就有了第二种解决方案:拖拽div移动
首先需要引入Jquery-ui.js
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
官方肯定也是有说明的 这是官方示例地址:sortable官方示例
具体代码大概就是这样的
<html>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
#sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#sortable li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px; }
#sortable li span { position: absolute; margin-left: -1.3em; }
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<body>
<ul id="sortable">
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item