【JS】使用sortable实现拖拽功能

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值