js上移下移功能

今天分享一下项目里面用到的一个小功能,实现上移下移的功能。
<ul class="ctL_handle J_ctL_handle">
    <li class="ctL_li j_ctl_li">
          <span>上移</span>
          <span>下移</span>
     </li>
     <li class="ctL_li j_ctl_li">
          <span>上移</span>
          <span>下移</span>
     </li>
      <li class="ctL_li j_ctl_li">
          <span>上移</span>
          <span>下移</span>
     </li>
</ul>
这里样式的话就不写了,可以根据自己的需求来定义,主要的还是逻辑部分。

var moveUporDown= {
	//设置上移
	setUp: function(t){
		var bar = 'ctL_li'; //获取到需要操作的每一个li(我们操作的是让li上下移动)
		if($(t).parents('.'+ bar).prev('.'+bar).html() != undefined){
			//克隆当前节点
			var obj = $(t).parents('.'+bar).clone(true);
			var objs = $(t).parents('.'+bar).prev().clone(true);
			//先让当前节点父元素做运动实现上移效果
			$(t).parents('.'+ bar).stop().animate({
				"bottom":$(t).parents('.'+ bar).prev().height()+70
			},500);
			//当前节点的父节点的上一个兄弟节点运动实现下移效果
			$(t).parents('.'+ bar).prev().stop().animate({
				"top":$(t).parents('.'+ bar).height()+70
			},500,function(){
					//运动完成后先让此节点父元素之前插入克隆然后再移除父节点
					$(t).parents('.'+bar).prev().before(obj);
					$(t).parents('.'+bar).prev().remove();
					//此节点前插入克隆再移除(克隆移除必须写在一块)
					$(t).parents('.'+bar).before(objs);
					$(t).parents('.'+bar).remove();
					totalTi();
			});
		}else{
			alert('已经到顶,不能再上移了...');
		}
	},
	//设置下移
	setDown: function(t){
		var bar = 'ctL_li';
		if($(t).parents('.'+bar).next('.'+bar).html() != undefined){
			//克隆一个当前节点
			var obj = $(t).parents('.'+bar).clone(true);
			var objs = $(t).parents('.'+bar).next().clone(true);
			//先让当前节点父元素做运动实现下移效果
			$(t).parents('.'+ bar).stop().animate({
				"top":$(t).parents('.'+ bar).next().height()+70
			},500);
			//当前节点的父节点的上一个兄弟节点运动实现上移效果
			$(t).parents('.'+ bar).next().stop().animate({
				"bottom":$(t).parents('.'+ bar).height()+70
			},500,function(){
					//运动完成后先让此节点父元素之后插入克隆然后再移除父节点
					$(t).parents('.'+bar).next().after(obj);
					$(t).parents('.'+bar).next().remove();
					//此节点后插入克隆再移除(克隆移除必须写在一块)
					$(t).parents('.'+bar).after(objs);
					$(t).parents('.'+bar).remove();
					totalTi();
			});
		}else{
			alert('已经到底,不能再下移了...');
		}
	}
}
这样我们分别给span绑定一个事件,比如上移的span,加个类名.j_setUp,然后

$(".j_setUp").on("click",function(){
   productsLabel.setUp(this);  //直接调用我们写好的方法,传入this就可以了
});
下移的操作也是如此。




  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值