AngularJS仿苹果滑屏删除控件

AngularJs被用来开发单页面应用程序(SPA),利用AJAX调用配合页面的局部刷新,可以减少页面跳转,从而获得更好的用户体验。Angular的ngView及其对应的强大路由机制,是实现SPA应用的核心模块。本文所说的页面切换指的就是这个路由机制,即根据不同的url展示不同的视图。

前端开发中,为了对列表项进行快捷操作,有时就添个按钮来简单实现。但是,有时会发现按钮影响美观,甚至影响列表行的布局。稍在网上搜索无果,而写此仿苹果滑屏删除控件

依赖项:angularJS、jQuery

测试浏览器:Chrome、IE11、手机浏览器

原先列表项代码

rush:js;">
显示的内容

开发目标:

rush:js;">
删除" ondelete="ondelete(item)"> 这是整行显示内容

首先,要写个angular指令:

rush:js;"> myapp.directive('slideDelete',function() { return { restrict: 'AE',scope: { text: "@",ondelete: "&" },link: function (scope,element,attrs) { var w = $(element).outerWidth ();//应显示的宽度 var h = $(element).outerHeight();//应显示的高度 //按钮宽度 var btn_w = 60; //设计按钮: scope.btn = $('
cope.text||'删除')+'
'); //改造行,用一个绝对定位div将内容包裹起来 $(element).contents().wrapAll('
Box style="position:absolute;z-index:5999;left:0;top:0;width:'+w+'px;height:'+h+'px;background-color:#fff;">
'); //添加按钮: $(element).css({overflow:"hidden",position:"relative","z-index":5999}).append(scope.btn) //滑屏功能 .slideable({ getLeft: function(self){return self.children(":first-child").position().left;},setLeft: function(self,x){ self.children(":first-child").css({left: x<-btn_w && -btn_w || x<0 && x || 0});},onslide: function(self,x){ scope.open = x < -btn_w / 2; self.css("z-index",scope.open && 6001 || 5999); //背景,点击收起 var bk = $.fixedBackground(6000,scope.open); scope.open && bk.data("self",self).click(function(){ var self = bk.data("self"); $.fixedBackground(6000,false); self && self.css("z-index",5999).children(":first-child").animate({left: 0},100); }); self.children(":first-child").animate({left: scope.open ? -btn_w : 0},100); } }) //按钮事件 scope.btn.click(function(){ scope.ondelete && scope.ondelete(); $.fixedBackground(6000,1).click();//关闭背景 }); } }; });

再写个滑屏事件类,当然要兼容鼠标

0)){ bk = $('
ottom:0;background-color:rgba(0,0)">'); $("body").append(bk); } return bk; } })(jQuery);

关于上述代码给大家介绍的AngularJS仿苹果滑屏删除控件的相关代码,都是小编测试过的,可以放心安全使用。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...