JavaScript基础-移动端常见特效

随着移动互联网的发展,为移动设备优化的网页变得越来越重要。JavaScript在实现移动端特有的交互体验中扮演着关键角色。本文将介绍几种常见的移动端特效,并通过具体的代码示例展示如何使用JavaScript和相关技术来创建这些特效。

一、手势识别

(一)滑动手势

滑动是移动端最常用的手势之一。通过监听touchstart, touchmove, 和 touchend事件,可以轻松地实现滑动效果。

示例:横向滑动切换图片
<div id="slider" style="width:300px;height:200px;overflow:hidden;"><div id="slides" style="display:flex;width:900px;"><img src="image1.jpg" style="width:300px;height:200px;"><img src="image2.jpg" style="width:300px;height:200px;"><img src="image3.jpg" style="width:300px;height:200px;"></div>
</div><script>
let startX = 0;
let currentX = 0;document.getElementById('slider').addEventListener('touchstart', function(e) {startX = e.touches[0].clientX;
});document.getElementById('slider').addEventListener('touchmove', function(e) {currentX = e.touches[0].clientX - startX;document.getElementById('slides').style.transform = 'translateX('+currentX+'px)';
});document.getElementById('slider').addEventListener('touchend', function(e) {if (currentX > 100) {alert("Swiped Right");} else if (currentX < -100) {alert("Swiped Left");}// Reset positiondocument.getElementById('slides').style.transform = 'translateX(0px)';
});
</script>

(二)双指缩放

双指缩放是另一个重要的手势,尤其适用于图像或地图等需要缩放查看的内容。

示例:双指缩放图片
<img id="scalableImage" src="example.jpg" style="width:100%;height:auto;"><script>
let initialDistance = 0;document.getElementById('scalableImage').addEventListener('touchstart', function(e) {if (e.touches.length == 2) { // Ensure it's a two-finger touchlet x1 = e.touches[0].clientX, y1 = e.touches[0].clientY;let x2 = e.touches[1].clientX, y2 = e.touches[1].clientY;initialDistance = Math.sqrt((x2-x1)**2 + (y2-y1)**2);}
});document.getElementById('scalableImage').addEventListener('touchmove', function(e) {if (e.touches.length == 2) {let x1 = e.touches[0].clientX, y1 = e.touches[0].clientY;let x2 = e.touches[1].clientX, y2 = e.touches[1].clientY;let currentDistance = Math.sqrt((x2-x1)**2 + (y2-y1)**2);let scale = currentDistance / initialDistance;this.style.transform = 'scale('+scale+')';}
});
</script>

二、响应式设计中的动画

(一)视差滚动

视差滚动是一种视觉效果,背景图层以不同的速度滚动,从而产生深度感。

示例:简单的视差效果
<style>
.parallax {height: 500px;background-image: url('parallax-bg.jpg');background-attachment: fixed;background-position: center;background-repeat: no-repeat;background-size: cover;
}
</style><div class="parallax"></div>

(二)淡入淡出效果

淡入淡出效果可以通过CSS的opacity属性结合JavaScript来实现,用于元素显示或隐藏时增加过渡效果。

示例:点击按钮使图片淡入
<img id="fadeImage" src="example.jpg" style="width:100%;height:auto;display:none;"><button onclick="fadeIn()">Fade In Image</button><script>
function fadeIn() {let img = document.getElementById('fadeImage');let opacity = 0;img.style.display = 'block';let timer = setInterval(function() {if (opacity >= 1) {clearInterval(timer);}img.style.opacity = opacity;opacity += 0.02;}, 20);
}
</script>

三、结语

感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ui-tars和omni-parser使用

ui-tars部署和训练 说明快速开始环境准备ui-tars web推理和训练ui-tars api部署omni-parser使用 说明 镜像中包含ui-tars、llama-factory和omni-parser。该镜像还在审批中&#xff0c;估计明天可以上线&#xff0c;到时候可以在auto-dl中的社区镜像搜索。 快速开始 使用auto…

TF-IDF——自然语言处理——红楼梦案例

目录 一、红楼梦数据分析 &#xff08;1&#xff09;红楼梦源文件 &#xff08;2&#xff09;数据预处理——分卷实现思路 &#xff08;3&#xff09;分卷代码 二、分卷处理&#xff0c;删除停用词&#xff0c;将文章转换为标准格式 1.实现的思路及细节 2.代码实现&#…

【NLP 面经 5】

难以承受的东西只会让我在下一次更平静的面对 —— 25.4.2 一、NER任务&#xff0c;CRF模型改进 命名实体识别&#xff08;NER&#xff09;任务中&#xff0c;你使用基于条件随机场&#xff08;CRF&#xff09;的模型&#xff0c;然而模型在识别嵌套实体和重叠实体时效果不佳&a…

机器学习之回归算法

《数据挖掘技术与应用》 【实验名称】 实验&#xff1a;回归算法 【实验目的】 1.了解回归算法理论基础 2.平台实现算法 3. 编程实现分类算法 【实验原理】 线性回归是利用数理统计中回归分析&#xff0c;来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法&…

Cline源码分析

Cline源码分析 --- vscode插件开发与cline的界面系统 vscode插件开发基础知识开发基础‌核心概念核心API调试与发布调试 学习路线React开发界面前端代码分析package.jsonview/title&#xff08;视图标题栏菜单&#xff09;‌editor/title&#xff08;编辑器标题栏菜单&#xff…

k8s EmptyDir(空目录)详解

1. 定义与特性 emptyDir 是 Kubernetes 中一种临时存储卷类型&#xff0c;其生命周期与 Pod 完全绑定。当 Pod 被创建时&#xff0c;emptyDir 会在节点上生成一个空目录&#xff1b;当 Pod 被删除时&#xff0c;该目录及其数据会被永久清除。它主要用于同一 Pod 内多个容器间的…

【idea】实用插件

SonarLint SonarLint&#xff1a;代码质量扫描工具 使用 SonarLint 可以帮助我们发现代码的问题,并且还提供了相应的解决方案. 对于每一个问题&#xff0c;SonarLint 都给出了示例&#xff0c;还有相应的解决方案&#xff0c;教我们怎么修改&#xff0c;极大的方便了我们的开发…

【mysql 的安装及使用】

MySQL 9.0 一、下载MySQL[MySQL 9.0 下载] [(https://dev.mysql.com/downloads/mysql/)选择自定义,选择合适安装路径二、检查安装情况配置环境变量打开命令行查看版本创建数据库在MySQL中,可以使用create database语句来创建数据库。以下是创建一个名为my_db的数据库的示例:…

leetcode118.杨辉三角

思路源自 【LeetCode 每日一题】118. 杨辉三角 | 手写图解版思路 代码讲解 class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> result new ArrayList<>();for (int i 0; i < numRows; i) {List<…

【git】git pull 和 git rebase

git pull 和 git rebase 都是 Git 中用于同步代码的命令&#xff0c;但它们的工作方式和适用场景有显著区别。以下是两者的详细对比&#xff1a; 1. 核心区别 特性git pullgit rebase本质git fetch git merge&#xff08;默认&#xff09;将当前分支的提交“重新播放”到目标…

DIY搭建网站(学术个人介绍主页)

本教程介绍了如何创建并管理一个基于GitHub Pages的个人网站。首先&#xff0c;需要在GitHub上创建一个遵循特定命名规则的新仓库&#xff0c;例如用户名.github.io&#xff0c;以便建立个人站点。接着&#xff0c;通过Fork一个开源模板代码仓库并添加index.html文件来构建主页…

数据结构初阶:二叉树的前中后序三种遍历(递归的暴力美学)

想要实现二叉树的遍历可以创建一个链式结构的二叉树 回顾一下二叉树的概念&#xff0c;二叉树分为空树和非空二叉树&#xff0c;非空二叉树由根节点、根节点的左子树和根节点的右子树组成。 typedef char BTDataType; // 数据类型 typedef struct BinaryTreeNode {B…

WebUI问题总结

修改WebUI代码时遇到的一些问题以及解决办法 1. thttpd服务器环境的搭建 可参考《thttpd安装与启动流程》这一篇文章 其中遇到的问题有 thttpd版本问题&#xff1a;版本过旧会导致安装失败&#xff0c;尽量安装新版本thttpd的启动命令失败的话要加上sudo修改文件权限&#…

【C++重点】deque

C queue 容器介绍 queue 是 C 标准库中的一个容器适配器&#xff0c;它实现了先进先出&#xff08;FIFO&#xff09;数据结构。即&#xff0c;元素按照插入的顺序排队&#xff0c;首先插入的元素最先出队。queue 适用于需要排队处理任务的场景&#xff0c;比如消息队列、任务调…

透过 /proc 看见内核:Linux 虚拟文件系统与 systemd 初始化初探

当我们在终端中输入 ps、top、cat /proc/cpuinfo 等命令时&#xff0c;是否思考过这些信息来自哪里&#xff1f;为什么无需启动任何守护进程&#xff0c;就能实时读取系统负载、内存占用&#xff0c;甚至内核版本&#xff1f;这一切的答案&#xff0c;都藏在 Linux 系统中的一个…

操作系统(中断 异常 陷阱) ─── linux第28课

目录 1.硬件中断 2. 时钟中断 3. OS本质 4. 软件中断 缺页中断&#xff1f;内存碎片处理&#xff1f;除零野指针错误&#xff1f; 操作系统本质总结 操作系统是对软件硬件资源管理的软件 1.硬件中断 中断向量表(IDT)就是操作系统的⼀部分&#xff0c;启动就加载到内存中了…

文件分片上传

1前端 <inputtype"file"accept".mp4"ref"videoInput"change"handleVideoChange"style"display: none;">2生成hash // 根据整个文件的文件名和大小组合的字符串生成hash值&#xff0c;大概率确定文件的唯一性fhash(f…

机器学习的一百个概念(5)数据增强

前言 本文隶属于专栏《机器学习的一百个概念》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索&…

基于微信小程序的智慧乡村旅游服务平台【附源码】

基于微信小程序的智慧乡村旅游服务平台&#xff08;源码L文说明文档&#xff09; 目录 4系统设计 4.1系统功能设计 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 管理员模块的实现 5.1.1旅游景点管理…

数据驱动的智能BMS革新:机器学习赋能电池健康预测与安全协同优化

传统电池管理系统&#xff08;BMS&#xff09;依赖等效电路模型和固定参数算法&#xff0c;面临电化学机理复杂、老化行为非线性、多工况适应性差等瓶颈。例如&#xff0c;健康状态&#xff08;SOH&#xff09;和荷电状态&#xff08;SOC&#xff09;估算易受温度、循环次数及电…