便利贴--17{移动端滑动模块}

  • id

id

动态绑定高度

<div id="mobileActivity" :style="{ height: height + 'px' }">

使用方法

 this.domMove = new moveWindow({id: "mobileActivity",minHeight: that.useHeight,critical: 100,fn: function (res) {that.height = res.height;// console.log(res.height);if (res.state != "on") {that.openValue = res.state;}},}).init();

class

class moveWindow {constructor(data) {this.id = data.id;this.start = 0;this.end = 0;this.domHeight = 0;this.domMove = null;this.openValue = false;this.useHeight = data.minHeight;this.height = data.minHeight;this.critical = data.critical;let that = this;this.fn =data.fn ||function (res) {console.log("未设置回调函数");console.log(res);};this.ListenerTouchmove = function (window) {let moseHeight = window.changedTouches[0].clientY;//   let windowHeight = document.body.clientHeight; //屏幕宽度let endOn = moseHeight;let cha = +that.start - +endOn;//   let cha = windowHeight - moseHeight;//   console.log(window);//   if (cha >= windowHeight / 2) {//     cha = windowHeight / 2;//   } else if (cha <= that.useHeight) {//     cha = that.useHeight;//   }let d = {state: "on",height: +that.domHeight + cha,};that.fn(d);};this.ListenerTouchstart = function (window) {let moseHeight = window.changedTouches[0].clientY;that.start = moseHeight;that.domHeight = document.getElementById(that.id).style.cssText.split("px")[0].split("height:")[1];};this.ListenerTouchend = function (window) {let moseHeight = window.changedTouches[0].clientY;that.end = moseHeight;let cha, states;if (that.end >= that.start) {states = false;cha = that.end - that.start;} else {states = true;cha = that.start - that.end;}//   console.log(that.start, that.end);//   console.log(cha);if (cha >= that.critical) {//高that.opens(states);} else if (cha < that.critical) {//低that.opens(states);}};return this;}//启动监听事件init() {this.domMove = document.getElementById(this.id);this.domMove.addEventListener("touchmove", this.ListenerTouchmove);// 结束位置靠滑动距离判断this.domMove.addEventListener("touchstart", this.ListenerTouchstart);this.domMove.addEventListener("touchend", this.ListenerTouchend);}//关闭监听事件closeInit() {this.domMove = document.getElementById(this.id);this.domMove.removeEventListener("touchmove", this.ListenerTouchmove);// 结束位置靠滑动距离判断this.domMove.removeEventListener("touchstart", this.ListenerTouchstart);this.domMove.removeEventListener("touchend", this.ListenerTouchend);}//输出事件opens(val) {this.openValue = val;if (val) {let windowHeight = document.body.clientHeight;this.height = windowHeight / 2;} else {this.height = this.useHeight;}let d = {state: this.openValue,height: this.height,};this.fn(d);}// 结束位置是一半判断//  domMove.addEventListener("touchend", function (window) {//   let moseHeight = window.changedTouches[0].clientY;//   let windowHeight = document.body.clientHeight;//   let cha = windowHeight - moseHeight;//   console.log(cha, "最后位置");//   let centerPoint =//     (windowHeight / 2 - +that.useHeight) / 2 + +that.useHeight;//   if (cha >= centerPoint) {//     cha = windowHeight / 2;//   } else if (cha < centerPoint) {//     cha = that.useHeight;//   }//   that.height = cha;// });
}export default moveWindow;

便利贴--17{移动端滑动模块}相关推荐

  1. 便利贴--23{移动端滑动模块-改良}

    便利贴--23{移动端滑动模块-改良} 效果 之前那个只适用于之前的项目,这个可以自定义项目 使用 效果 之前那个只适用于之前的项目,这个可以自定义项目 在这里可以编写切面函数,直接区分内部事务和外部 ...

  2. 便利贴--25{uniapp移动端滑动模块-因为uniapp打包后没有window,所以要另外去做监听和触控事件的传递}

    便利贴--25{uniapp移动端滑动模块-因为uniapp打包后没有window,所以要另外去做监听和触控事件的传递} 效果![请添加图片描述](https://img-blog.csdnimg.c ...

  3. bootstrap轮播如何支持移动端滑动手势

    1.下载滑动手势 js 插件:hammer.js //cdn.bootcss.com/hammer.js/2.0.8/hammer.min.js 2.写一个javascript命令调用hammer.j ...

  4. B端会员模块的思考与设计

    本文由作者 阿井 于社区发布 当前,互联网产品的商业化模式主要有付费会员.广告投放(如谷歌.百度.头条的广告投放).佣金抽成(淘宝.京东等平台). 其中付费会员越来越成为企业商业化产品的主流.特别是在 ...

  5. 解决移动端滑动方向相反

    解决移动端滑动方向相反 安卓移动端滑动时,手指没离开屏幕时滑动正常,手指一离开屏幕就往反方向滑,ios是没有问题的. 解决方案:检查列表盒子的overflow:hidden属性,去除即刻.

  6. ios移动端滑动抖动的bug

    ios 端滑动抖动bug 在安卓上不会有问题,在ios 上滑动出现抖动情况 先上图 类似这种滑动出现,目前有几种可能会影响: 1.蒙层fixed定位,子盒子在用fixed定位会出现这个情况.解决办法就 ...

  7. seajs引入html,SeaJS:一个适用于 Web 浏览器端的模块加载器

    什么是SeaJS? SeaJS是一款适用于Web浏览器端的模块加载器,它同时又与Node兼容.在SeaJS的世界里,一个文件就是一个模块,所有模块都遵循CMD(Common Module Defini ...

  8. douyin web端滑动,点选验证码分析

    仅用在学习交流,如有侵权,联系删除. 仅用在学习交流,如有侵权,联系删除. 仅用在学习交流,如有侵权,联系删除. 当前douyin web端,请求cookie中有两个很重要的参数,一个就是s_v_we ...

  9. js---PC端滑动进度条

    这个是PC端的滑动进度条效果: <!doctype html> <html lang="en"> <head> <meta charset ...

最新文章

  1. Hybrid App 跨平台热更新方案实践 附带源码
  2. RabbitMq--1
  3. 6 Approximation and fitting
  4. VC++的学习(基于VS2008)——windows程序内部运行机制
  5. Java,C实现约瑟夫环,一元多项式运算器
  6. 有关java的参考软件_Java的相关的排序实现(参考软件设计师教程)
  7. 常用C/C++预处理指令详解
  8. react 使用rewired_使用react-app-rewired和customize-cra对默认webpack自定义配置
  9. LightGBM 二元分类、多类分类、 Python的回归和分类器应用
  10. 软件封装-单文件打包
  11. 免费的中文语音数据集汇总列表
  12. GOM引擎 mirserver服务端各文件夹注解
  13. matlab钉子链条,MatLab的Galton钉板问题训练报告 终极版
  14. 中介者(Mediator)模式实例
  15. java中多种写文件方式的效率对比实验
  16. Mac 重启后,连接不上wifi
  17. 淘宝新版打标足迹在哪里浏览?
  18. 浅谈C中的wprintf和宽字符显示
  19. 测试狗:冷冻电镜是什么?冷冻电镜技术的应用
  20. Android中的elevation

热门文章

  1. 收到一封钓鱼邮件……
  2. 数据库中数据的独立性解释
  3. uniapp-小程序点击底部导航跳转并刷新页面
  4. js格式化时间(YYYY-MM-DD)
  5. 学习Python:StringIO与cStringIO
  6. 童鞋想盗取我十几个G的“种子”,看我是用python来层层加锁!!!
  7. vscode 一直显示Load project: XXXX,保存时提示“从 “‘Vetur‘, ‘Vue Language Features (Volar)‘“ (configure)中获取代码操作”
  8. Jmeter阶梯式等值压测-详细实战教程(一)
  9. android listview 删除出错,Android Studio,删除ListView项目而不影响另一个项目
  10. bzoj 4765: 普通计算姬