web 页面/内容 触摸/点击滑动
监听标签的触摸/鼠标滑动事件,添加元素的切换动画,效果如下:
事件监听
鼠标事件和触摸事件监听:
1 componentDidMount() {
2 var teachingReportDiv = document.getElementById("teachingReport") as HTMLElement;
3 teachingReportDiv.onmousedown = this.onMouseDown;
4 teachingReportDiv.onmouseup = this.onMouseUp;
5 teachingReportDiv.addEventListener('touchstart', this.onTouchStart, false);
6 teachingReportDiv.addEventListener('touchmove', this.onTouchMove, false);
7 teachingReportDiv.addEventListener('touchend', this.onTouchEnd, false);
8 }
触摸事件,不能HTMLElement.ontouchstart添加事件监听,可以EventListener或者在标签中添加
1 <div id="teachingReport" onTouchStart={(event) => this.onTouchStart(event)}/>
触摸事件有以下几个:
touchstart
事件:手指触摸时候触发(支持多指触发)touchmove
事件:手指在滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()
事件可以阻止滚动,当然也不能滥用否则会影响原有页面的上下滚动等。touchend
事件:手指从屏幕上离开的时候触发touchcancel
事件:当系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明。。。不建议使用
事件处理
添加全局字段:
1 onTouchStart = (event) => {
2 this.locationStartX = event.targetTouches[0].pageX;
3 }
4 onTouchMove = (event) => {
5 // event.preventDefault();
6 this.locationEndX = event.targetTouches[0].pageX;
7 }
8 onTouchEnd = (event) => {
9 const locationChangedX = this.locationEndX < this.locationStartX;
10 if (Math.abs(locationChangedX) > 10) {
11 const isSlidingToRight=locationChangedX<0;
12 }
13 }
添加切换动画
动画,可以通过state参数触发
1 <div className="reportContent-img" style={{ animation: this.state.selectTabIndex == 0 ? 'showFromLeft 0.4s forwards' : 'hideToLeft 0.2s forwards' }}></div>
动画数据参考:
1 //动画
2 @keyframes showFromLeft {
3 from {
4 opacity: 0;
5 transform: translateX(-100px);
6 }
7 to {
8 opacity: 1;
9 transform: translateX(0px);
10 }
11 }
12 @keyframes showFromRight {
13 from {
14 opacity: 0;
15 transform: translateX(100px);
16 }
17 to {
18 opacity: 1;
19 transform: translateX(0px);
20 }
21 }
22 @keyframes hideToLeft {
23 from {
24 opacity: 1;
25 transform: translateX(0px);
26 }
27 to {
28 opacity: 0;
29 transform: translateX(-100px);
30 }
31 }
32 @keyframes hideToRight {
33 from {
34 opacity: 1;
35 transform: translateX(0px);
36 }
37 to {
38 opacity: 0;
39 transform: translateX(100px);
40 }
41 }
web 页面/内容 触摸/点击滑动的更多相关文章
- Swipe JS – 移动WEB页面内容触摸滑动类库
想必做移动前端的同学经常会接到这样子的一个需求,就是在移动设备页面上的banner图能够用手指触摸左右或上下的滑动切换,这在移动设备是个很常见的一个效果,其用户体验远甚于点击一个按钮区域,通过手指的触 ...
- 基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这个Bootstrap框架的各个主要方面的内容,总体来说基本达到了一个稳定的状态,随着时间的推移可 ...
- web页面内容优化管理与性能技巧
来源:GBin1.com 回 想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪 存文件,里面包含的有视频或者图片 ...
- (转)基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
http://www.cnblogs.com/wuhuacong/p/5147368.html 在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这 ...
- web 页面内容优化管理与性能技巧
回想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪存文件,里面包含的有视频或者图片.然而,随着移动开发的兴起,我 ...
- js打印WEB页面内容代码大全
第一种方法:指定不打印区域 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内. 详细如下: <style media=print type="tex ...
- 用A标签实现页面内容定位 点击链接跳到具体位置
经常在维基百科等网站看到目录列表,点击链接会跳到具体的位置,小美眉一直在问是怎么做到的,其实挺简单的,用A标签实现页面内容定位就行了.实例参考微信营销理论手册的目录. 首先用A标签定义目录的链接. & ...
- 知名网站内部资料:WEB页面内容优化管理与性能技巧
回想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪 存文件,里面包含的有视频或者图片.然而,随着移动开发的兴起, ...
- web页面内容打印总结
web页面打印有两种,一种是直接调用window.print()命令操作,一种是使用ActiveX插件(Object标签)操作,但是第二种只支持IE内核的浏览器. 示例1: <!DOCTYPE ...
- Winfrom 抓取web页面内容代码
WebRequest request = WebRequest.Create("http://1.bjapp.sinaapp.com/play.php?a=" + PageUrl) ...
随机推荐
- ASP.NET WEBAPI oken验证
看了下网上关于.net webAPI 的案例全是坑 验证成功了不被微信服务器接收 微信客服有找不到,提问也没人回 自己测试好几个小时 终于发现返回结果只要个string 双引号都不用加 public ...
- win10edge浏览器个人账户退出登录后再次登录自动登录问题
edge浏览器退出登录后,再次点击登录以同步数据会自动登录,可查看书签等个人数据 解决方法: 先在浏览器里面退出账户. 1.设置--电子邮件和账户--管理 2.登录后--安全--安全仪表板--高级安全 ...
- 表单笔记-Antd(Form)
antd表单使用笔记 import React, { useState, useEffect, useRef } from "react"; import { Form, Inpu ...
- 微信小程序中如何识别银行卡和身份证
识别银行卡云函数card2/index.js: const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRE ...
- 函数XLOOKUP
这个公式非OFFICE 365用户需要选中执行范围后 按Ctrl+Shift+Enter三键 (因为不支持公式溢出) XLOOKUP函数的基本结构是: =XLOOKUP(lookup_value,lo ...
- 实验十 团队作业7:团队项目用户验收&Beta冲刺
项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 实验十 团队名称 零基础619 团队成员分工描述 任务1:亚楠,桂婷任务2:团队合作任务3:团队合作任务4:荣娟,鑫 团队的课程学习目 ...
- excel里面嵌入一个表格
excel里怎么嵌入表格 excel是我们工作中经常会用的软件,有时两表格想放在一起比较,但是行高列宽调起来顾此失彼,so: 软件版本:Microsoft Office Excel 2010 操作系统 ...
- Winhex 恢复三个分区
通过之前的博客WinHex恢复分区,我们知道 在MBR中,一共有四行是我们分区的引导,所以,我们手动只能创建三个主分区,通过工具软件,我们最多可以创建四个主分区 那么测试:如何创建四个主分区? 首先, ...
- gRPC之.Net6中的客户端和服务端共用proto协议文件
1.说明 在上一篇文章gRPC之.Net6中的初步使用介绍中,我们简单的介绍了gRPC在服务端.客户端以及Web项目中的使用. 有一个问题,不知道大家发现没有,就是不管在服务端项目还是客户端项目中,我 ...
- Python——基础知识(一)
1. 那么多编程语言,为什么学python 易于学习,是所有编程语言当中最容易学习的 没有最好的语言,只有最合适的语言 2. 反复执行的用例如何提升效率 测试流程回归(回顾) 很多测试用例在不同的测试 ...