• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >HBuilder教程 > html5仿ios下拉和上拉回弹功能

html5仿ios下拉和上拉回弹功能

作者:教程 字体:[增加 减小] 来源:互联网 时间:2017-05-31

本文主要包含html5 下拉菜单,html5下拉刷新,html5下拉加载更多,html5下拉列表,html5下拉选择等相关知识,教程希望在学习及工作中可以帮助到您
"); </div> 在网上搜索了“html5 下拉回弹” 或 “html5  仿ios下拉回弹”,几乎没有找到可用的代码,大都是在对-webkit-overflow-scrolling进行讨论的,没什么意思。
-webkit-overflow-scrolling : touch;
    在查看了iscroll.js的下拉回弹及mui的回弹功能后,码出了以下的代码,基本上能够做到模仿ios回弹的效果。
var huitan = (function() {
var ht = {};
ht.init = function(d) {
  if (!support_touch_event()) return;
  var startX, startY, endX, endY, cou,
   container = d || document.querySelector(".mui-content");
  container.addEventListener('touchstart', function(e) {
   e.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等
   var touch = e.touches[0]; //获取第一个触点
   var x = touch.pageX; //页面触点X坐标
   var y = touch.pageY; //页面触点Y坐标
   //记录触点初始位置
   startX = x;
   startY = y;
   cou = 0;
  });
  container.addEventListener('touchmove', function(e) {
   e.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等
   var touch = e.touches[0]; //获取第一个触点
   var x = touch.pageX; //页面触点X坐标
   var y = touch.pageY; //页面触点Y坐标
   endX = x;
   endY = y;
   var abs = Math.abs(y - startY)
   if (abs > 50 && abs < 180) {
    //低版本安卓机拉伸有抖动现象,通过减少动画次数来规避
    if ( /*mui.os.android &&*/ ++cou % 10 == 0) {
     container.style.cssText = "transition:1s cubic-bezier(.1, .57, .1, 1); -webkit-transition:1s cubic-bezier(.1, .57, .1, 1); -webkit-transform: translate(0px, " + (y - startY) + "px) translateZ(0px);";
    }
   }
  });
  container.addEventListener('touchend', touchend);
  container.addEventListener('touchcancel', touchend);

  function touchend(e) {
   e.preventDefault();
   container.style.cssText = "transition:300ms cubic-bezier(.1, .57, .1, 1); -webkit-transition: 300ms cubic-bezier(.1, .57, .1, 1);  -webkit-transform: translate(0px,0px) translateZ(0px);";
  }

  function support_touch_event() {
   return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
  }
}
return ht;
}())
mui提供了以下代码实现回弹效果,不过当dom内部元素高度小于屏幕高度时是没有回弹效果的。且有滚动条出没。
<div class="mui-page-content">
    <!--回弹-->
    <div class="mui-scroll-wrapper">
     <div class="mui-content mui-scroll">
     </div>
     <div class="mui-scrollbar mui-scrollbar-vertical">
      <div class="mui-scrollbar-indicator"></div>
     </div>
    </div>
   </div>
使用示例
如果mui-content内部ul高度大于body高度,就不要使用回弹代码了,因为下拉列表本身overflow-y:auto已经有该效果了。
function bindScroll() {
    var lefts = document.querySelectorAll(".left-title .mui-content .tooitems");
    Array.prototype.forEach.call(lefts, function(lf) {
     var ulheight = lf.querySelectorAll('ul li').length * 60;
     console.log(ulheight);
     if (ulheight <= 420) {
      huitan.init(lf);
     }
    });
   }

您可能想查找下面的文章:

  • 提升HTML5的性能体验系列之三 流畅下拉刷新和上拉翻页
  • html5仿ios下拉和上拉回弹功能2.0
  • html5仿ios下拉和上拉回弹功能

相关文章

  • 2017-05-31HTML5基于Canvas实现的画板涂鸦动画特效源码
  • 2017-05-31MUI 模板页面实现原理及多端适配指南
  • 2017-05-31MUI Android 创建一个最精简的5+SDK打包工程
  • 2017-05-315+APP优化技巧之Webview窗口渲染
  • 2018-12-04mui页面无法滚动解决方法
  • 2017-05-31Hbuilder MUI选项卡pullrefresh_with_tab主动触发切换
  • 2017-05-31Hbuilder连接第3方模拟器(夜神)
  • 2017-05-31Android平台提前注入5+ API,支持在plusready事件前调用
  • 2018-12-04MUI分享链接到微信好友、朋友圈、QQ好友
  • 2017-05-31Hbuilder MUI拨打客服电话js代码

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • Hbuilder 常用快捷键汇总
    • HBuilder mui 手势事件
    • MUI分享链接到微信好友、朋友圈、QQ好友
    • MUI H5+ app自动更新思路与实现
    • HBuilder mui 如何判断网络是否连接
    • 小米手机安装HBuilder调试基座报错Failure [INSTALL_CANCELED_BY_USER]
    • mui H5游戏平台完整源码
    • MUI Android 创建一个最精简的5+SDK打包工程
    • 如何用hbuilder开发微信公众号
    • Hbuilder MUI 如何使用njs把base64数据保存为图片(ios)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有