用法:
给需要添加左滑功能的元素添加以下属性:
data-swipe-item
给左滑显示出来的元素添加如下属性:
data-swipe-item-fixel
源码:
;(function (window, document, $, undefined) { "use strict"; var startPoint, $currentEl, $fixEl, moving = false, $rootEl = $(document.documentElement), openSwipeEl = null, $callback = function(){}; function touchMove(event) { var touch = event.touches[0], diffX = touch.clientX - startPoint.x, diffY = Math.abs(touch.clientY - startPoint.y), fixElWidth = $fixEl.width(), translated, translatedLeft = ($currentEl.data("translatedLeft") || 0) + diffX; if (translatedLeft > 0) { translatedLeft = translatedLeft / 10; } else if (translatedLeft < -fixElWidth) { translatedLeft = -fixElWidth; } $currentEl.data("isShow", translatedLeft < -fixElWidth * 0.5); translated = "translate3d(" + translatedLeft + "px,0,0)"; // 阻止默认行为,用于修复android4下不会触发touchend事件的bug,针对android且为左滑状态时,才阻止默认事件 if($$.isAndroid() && diffX < -5 && diffY < 5){ $currentEl.css({ "-webkit-transform": translated, transform: translated }); event.preventDefault(); }else if(!$$.isAndroid()){ $currentEl.css({ "-webkit-transform": translated, transform: translated }); } openSwipeEl = $currentEl; } function touchEnd(event) { $rootEl.off("touchmove", touchMove); $rootEl.off("touchend", touchEnd); $rootEl.off("touchcancle", touchEnd); moving = false; if (null === event) { return; } var translatedLeft = $currentEl.data("translatedLeft"), fixElWidth = $fixEl.width(), translated, halfFixElWidth = fixElWidth / 2; if ($currentEl.data("isShow")) { translatedLeft = -fixElWidth; openSwipeEl = $currentEl; } else { translatedLeft = 0; openSwipeEl = null; } $currentEl.data("translatedLeft", translatedLeft); translated = translatedLeft ? "translate3d(" + translatedLeft + "px,0,0)" : ""; $currentEl.css({ "-webkit-transform": translated, transform: translated }); $callback(); $currentEl.addClass('anim'); } function touchStart(event,callback) { var touches = event.touches; $currentEl = $(event.currentTarget); $callback = function(){ callback($currentEl); }; $fixEl = $currentEl.children("*[data-swipe-item-fixel]"); if (touches.length > 1) { return; } startPoint = { x: touches[0].clientX, y: touches[0].clientY }; $currentEl.removeClass('anim'); $rootEl.on("touchmove", touchMove); $rootEl.on("touchend", touchEnd); $rootEl.on("touchcancle", touchEnd); } $.fn.swipeMenu = function (callback) { var $el = $(this); $el.delegate("*[data-swipe-item]", "touchstart", (function(){ return function(event){ touchStart.apply($el, [event, callback]); } })()); }; function hideSwipe() { var translated = ""; //openSwipeEl = $("*[data-swipe-item]"); if (openSwipeEl) { openSwipeEl .css({ "-webkit-transform": translated, transform: translated }) .data("isShow", 0) .data("translatedLeft", 0); openSwipeEl = null; } } $(document).delegate('body', 'touchstart', function () { hideSwipe(); }); }(window, document, Zepto));
相关推荐
在Android应用开发中,"左滑插件"通常是指一种能够实现手势操作,特别是左侧滑动触发特定功能的UI组件或库。这种插件对于提高用户界面的交互性和用户体验至关重要,因为它提供了直观且便捷的操作方式。下面将详细...
以上就是不使用外部插件实现Android上QQ和微信样式左滑删除ListView的详细步骤。通过自定义布局、手势识别以及Adapter的优化,我们可以灵活地定制滑动效果,包括添加多个按钮或其他操作。这个过程需要对Android的...
在微信小程序的开发中,有时候我们需要实现类似手机应用常见的左滑操作,比如删除、标记等。这个名为"WeChatApp-slip-master"的压缩包提供了一个自定义组件,专门用于实现这样的功能。下面将详细讲解微信小程序左滑...
在HTML5技术中,"左滑删除"功能通常用于移动端Web应用,模仿苹果iOS设备上的交互体验,使得用户可以通过向左滑动元素来触发删除或者其他操作。这种效果常见于邮件应用、任务管理器或者任何需要用户快速处理列表项的...
JavaScript和jQuery Mobile插件则为Web应用提供了实现左滑删除的另一种途径。HTML5提供了离线存储、拖放、媒体元素等新特性,使得Web应用可以接近原生应用的体验。jQuery Mobile是一个轻量级的框架,它简化了移动...
对于"左滑删除",可能有现成的jQuery插件,如`swipeToDelete`或`leftSwipe`等,它们通常包含事件监听、计算滑动距离、动画效果和回调函数等核心功能。 2. **事件处理**:在JavaScript中,我们需要监听触摸屏幕的...
"Android 实现简单左滑删除控件" Android 实现简单左滑删除控件是 Android 开发中常见的交互控件之一,该控件允许用户通过左滑操作删除某个项目。下面将详细介绍 Android 实现简单左滑删除控件的知识点。 知识点 ...
// 处理左滑事件,例如切换到前一个页面 } void HandleSwipeRight() { // 处理右滑事件,例如切换到后一个页面 } } ``` 在实际项目中,SwipeControl插件不仅可以用于页面切换,还可以应用于各种需要滑动手势...
**jQuery轮播插件详解** 在网页设计中,图片轮播是一种常见的展示方式,它可以高效地展示多张图片,节省空间并提升用户体验。基于jQuery的轮播插件因其丰富的功能和简单易用的API,成为了开发者们首选的实现工具。...
- **滑动手势**:通过识别用户的滑动手势(如左滑、右滑等),可以在游戏中实现翻页、切换界面等功能。 - **缩放手势**:通过检测两个手指之间的距离变化来实现放大缩小的操作,适用于地图缩放、图片浏览等场景。 - ...
1. 手势插件使用功能包括:状态栏左滑切换应用、右滑截屏、底部上滑开启后台等。 2. 控制中心的插件CCSetting被作者认为已经足够使用,可以进行音乐控制和隐藏不需要的系统应用。作者认为在后台有音乐播放时才会使用...
Swipelistview左滑删除是Android开发中一种常见的交互设计,它模仿了微信等应用中的功能,让用户可以轻松地通过向左滑动列表项来触发删除或其他操作。这个功能极大地提升了用户界面的交互性和易用性。在Android-...
在移动设备上,H5页面已经成为展示信息和交互的重要手段,尤其在开发轻量级应用时,H5的灵活性和跨平台性得到了广泛的认可。在H5页面设计中,一个常见的交互元素是列表组件,而其中的侧滑功能则为用户提供了一种便捷...
在Android应用开发中,我们经常需要实现类似微信和QQ中的侧滑删除功能,这能为用户提供便捷的操作方式,快速管理列表中的数据。本教程将详细讲解如何使用SwipeMenuListView库来实现这一功能。 ...
在Vue.js移动端开发中,有时候我们需要实现类似列表项左滑后显示编辑和删除按钮的功能,这在电商或者信息管理类应用中很常见。本示例将详细介绍如何利用`vue-touch`插件来实现这一功能。 首先,我们安装`vue-touch`...
它使开发者能够通过简单的滑动手势(例如左滑或右滑)来触发特定的事件,如删除、收藏或分享。这种手势控制使得操作更直观,尤其是在移动设备的有限空间内。 4. **Bartender** (bartender-master) Bartender 是一...
4. 用户交互:插件应支持用户手动切换图片,这需要用到事件监听,如`.on('swipeleft', function() {...})`来响应用户的左滑手势,`.on('swiperight', function() {...})`则响应右滑。同时,还可以提供导航按钮让用户...
[x] 左滑取消操作、删除 [x] 单选按钮,复选按钮,on/off开关 [x] checkbox全选/全不选 [x] toast(warning,danger) [x] 横向可滑动tabbar [x] 图片翻页动画 [x] 瀑布流图文 [ ] 自定义...
通过计算手指在屏幕上的移动距离和方向,插件可以判断用户是要向左滑、向右滑还是进行其他操作,从而实现相应的图片切换效果。 在处理滑动事件的过程中,swiper.js使用了防抖(debounce)和节流(throttle)技术来优化...
年后入职了一家新公司,与前同事交接完之后,发现公司有一个四端的项目(iOS,Android,H5,小程序),iOS和安卓都实现了左滑右滑的效果,而h5和小程序端没实现,询问得知前同事因网上没找到对应的插件,相关博客也...