js 功能-滑动效果|学习笔记

简介: 快速学习 js 功能-滑动效果

开发者学堂课程【移动 Web 前端开发:js 功能-滑动效果】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/594/detail/8421


js功能-滑动效果


基本内容

轮播图的位置

touch 事件的另一种情况

 

一、轮播图的位置

Touch 事件可以滑动 ( touch 事件 监听触摸点坐标改变距离 位移) *

var startX = 0 ; 此时在记录开始的X坐标

imageBox.addEventListener(‘touchstart' , function(e){

});

监听的目的是什么? 答:记录开始的位置

在做滑动的时候,比如说: 从一个点滑动到另一个点, 必须要记录首次触摸屏幕的位置, 在滑动的过程中,不断地以当前的位置和之前的位置作比较, 可以比较出移动的距离和位置。

startX = e.touches[ 0 ].clientX;

console.log(startX);

判断方向是根据第一个点判断,其他可以忽略 当前记录的是X坐标。

imageBox.addEventListener(‘touchmove' , function(e){

var moveX = e.touches[ 0 ].clientX;

console.log(moveX);

console.log(moveX-startX); 随着两个点之间距离的改变,会不停的在打印两个在移动时产生的距离

此时可以监听的不停滑动的时候的坐标

});

imageBox.addEventListener(‘touchend' ,function(e){

});

l 第一个点固定不动,另一个点来回的做法可以根据点的坐标轴解决还有一种情况是负的,一个点固定不动左边全部都是正的,但是往右边滑动都是负的

 

二、touch  事件的另一种情况

var startX = 0 ;  此时在记录开始的X坐标。

imageBox.addEventListener(‘touchstart' , function(e){

});

监听的目的是什么? 答:记录开始的位置

在做滑动的时候,比如说: 从一个点滑动到另一个点, 必须要记录首次触摸屏幕的位置, 在滑动的过程中,不断地以当前的位置和之前的位置作比较, 可以比较出移动的距离和位置。

清除定时器。

clearInterval(timer )

startX = e.touches[ 0 ].clientX;

console.log(startX);

判断方向是根据第一个点判断,其他可以忽略 当前记录的是 X 坐标。

imageBox.addEventListener(‘touchmove' , function(e){

var moveX = e.touches[ 0 ].clientX ;

var distanceX = moveXstartX

distanceX 大于 0 的时候,向右滑动。

distanceX 小于 0 的时候,向左滑动。

此时可以监听的不停滑动的时候的坐标

var translateX = -index*width +distance 

计算出了将要定位的位置

清除过渡;

removetranslation ( );

做定位;

setTranslateX (translateX);

此时就可以达到向左或向右滑动时页面悬停的效果,如下图所示:

image.png

});

imageBox.addEventListener(‘touchend' ,function(e){

});

l 作用:滑动

模拟理解1: 向左边滑动  distanceX   是负的

假设现在的位置在这,这个位置应该是假设屏幕的宽度如果是640,那么现在的 distanceX 应该是多少?是-640假设屏幕是640,移动了一个屏幕的距离,而且是往左移动。那么就是-640

假设现在开始向左移动,初始点在“1”位置现在定位,如下图所示:

image.png

假设移动了一半320-640+(-320)= -960,移动之后如图所示:

image.png

 

l 模拟理解2: 向右边滑动 distanceX 是正的

向右滑动一半 +320。+320 +(-640)=-320

l 结论: 将要去做定位的位置,和distanceX的正负方向无关,基于当前的位置去移动。

l 在做滑动之前, 必须要清除定时器。

相关文章
|
9月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
511 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
9月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
672 11
|
11月前
|
JavaScript 前端开发 安全
盘点原生JS中目前最没用的几个功能API
在JavaScript的发展历程中,许多功能与API曾风光无限,但随着技术进步和语言演化,部分功能逐渐被淘汰或被更高效的替代方案取代。例如,`with`语句使代码作用域复杂、可读性差;`void`操作符功能冗余且影响可读性;`eval`函数存在严重安全风险和性能问题;`unescape`和`escape`函数已被`decodeURIComponent`和`encodeURIComponent`取代;`arguments`对象则被ES6的剩余参数语法替代。这些变化体现了JavaScript不断优化的趋势,开发者应紧跟技术步伐,学习新技能,适应新技术环境。
222 10
|
11月前
|
JavaScript 前端开发
【Vue.js】监听器功能(EventListener)的实际应用【合集】
而此次问题的核心就在于,Vue实例化的时机过早,在其所依赖的DOM结构尚未完整构建完成时就已启动挂载流程,从而导致无法找到对应的DOM元素,最终致使计算器功能出现异常,输出框错误地显示“{{current}}”,并且按钮的交互功能也完全丧失响应。为了让代码结构更为清晰,便于后续的维护与管理工作,我打算把HTML文件中标签内的JavaScript代码迁移到外部的JS文件里,随后在HTML文件中对其进行引用。
178 8
|
定位技术
arcgisapi for javascript4.0学习笔记4.0新特性
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/51842547 arcgisapi for javascript4.
872 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
296 2
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
235 1
JavaScript中的原型 保姆级文章一文搞懂
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
152 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
444 5
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的家政平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的家政平台附带文章源码部署视频讲解等
277 4