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.pswp.cn/bicheng/75440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75440.shtml
英文地址,請注明出處:http://en.pswp.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;估算易受溫度、循環次數及電…