当前位置: 首页 > news >正文

jQuery 入门学习教程,从入门到精通, jQuery在HTML5中的应用(16)

jQuery在HTML5中的应用


一、HTML5基础

1. HTML5文档结构

HTML5简化了DOCTYPE声明,引入语义化标签。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>HTML5基础</title>
</head>
<body><!-- 使用语义化标签 --><header>网站头部</header><nav>导航栏</nav><main><section>文章区块</section><aside>侧边栏</aside></main><footer>页脚</footer>
</body>
</html>

说明<header><nav><section><aside><footer> 等为HTML5新增语义元素,有助于SEO和无障碍访问。


二、HTML5的新特性

1. 表单增强(新输入类型)

<form><input type="email" placeholder="请输入邮箱"> <!-- 邮箱验证 --><input type="url" placeholder="请输入网址">   <!-- URL格式验证 --><input type="number" min="1" max="100">      <!-- 数字范围限制 --><input type="date">                          <!-- 日期选择器 --><input type="color">                         <!-- 颜色选择器 -->
</form>

说明:这些新类型在支持的浏览器中会自动提供UI控件和基本验证。


三、浏览器对HTML5的支持检测

使用 Modernizr 或原生 JavaScript 检测

// 检测是否支持 Canvas
if (typeof document.createElement('canvas').getContext === 'function') {console.log('浏览器支持 Canvas');
} else {alert('您的浏览器不支持 HTML5 Canvas,请升级!');
}

说明:也可使用 Modernizr.canvas(需引入 Modernizr 库)进行统一检测。


四、jQuery与HTML5编程

jQuery操作HTML5元素示例

<input type="range" id="slider" min="0" max="100" value="50">
<p>当前值:<span id="value">50</span></p><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {$('#slider').on('input', function() {// 实时监听 range 滑块变化$('#value').text($(this).val());});
});
</script>

说明input 事件比 change 更适合实时响应滑块变化。


五、显示文件上传的进度条(基于 HTML5 File API + jQuery)

案例:带进度条的文件上传

<input type="file" id="fileInput">
<progress id="progressBar" value="0" max="100" style="width:100%; display:none;"></progress><script>
$(document).ready(function() {$('#fileInput').on('change', function(e) {const file = e.target.files[0];if (!file) return;const formData = new FormData();formData.append('file', file);$.ajax({url: '/upload', // 后端接口type: 'POST',data: formData,processData: false,contentType: false,xhr: function() {const xhr = new window.XMLHttpRequest();xhr.upload.addEventListener("progress", function(evt) {if (evt.lengthComputable) {const percentComplete = evt.loaded / evt.total * 100;$('#progressBar').show().val(percentComplete);}}, false);return xhr;},success: function(res) {alert('上传成功!');}});});
});
</script>

说明

  • FormData 用于构建表单数据。
  • xhr.upload.addEventListener("progress", ...) 监听上传进度。
  • <progress> 是HTML5原生进度条元素。

六、Canvas绘图

使用 jQuery 初始化 Canvas 并绘图

<canvas id="myCanvas" width="400" height="200" style="border:1px solid #000;"></canvas><script>
$(document).ready(function() {const canvas = $('#myCanvas')[0]; // 获取原生 DOM 对象const ctx = canvas.getContext('2d');// 绘制矩形ctx.fillStyle = 'lightblue';ctx.fillRect(50, 50, 100, 80);// 绘制文字ctx.font = '20px Arial';ctx.fillText('Hello Canvas!', 200, 100);
});
</script>

说明:jQuery 不能直接操作 Canvas 上下文,需通过 [0] 获取原生元素。


七、jQuery + HTML5 实现图片旋转效果

利用 CSS3 transform + jQuery 动态控制

<img id="rotateImg" src="example.jpg" alt="可旋转图片" style="width:200px; transition: transform 0.3s;">
<button id="rotateBtn">旋转90°</button><script>
let angle = 0;
$('#rotateBtn').click(function() {angle += 90;$('#rotateImg').css('transform', `rotate(${angle}deg)`);
});
</script>

说明:虽然不直接使用 Canvas,但结合 HTML5 的 CSS3 支持实现动态效果。


八、基于HTML5播放声音的jQuery插件 audioPlay

自定义简易音频播放插件(模拟 audioPlay)

<audio id="myAudio" src="sound.mp3"></audio>
<button id="playBtn">播放</button>
<button id="pauseBtn">暂停</button><script>
$.fn.audioPlay = function(options) {const settings = $.extend({ volume: 1.0 }, options);return this.each(function() {const audio = this;audio.volume = settings.volume;$(this).data('audio', audio);});
};// 初始化
$('#myAudio').audioPlay({ volume: 0.8 });$('#playBtn').click(() => $('#myAudio')[0].play());
$('#pauseBtn').click(() => $('#myAudio')[0].pause());
</script>

说明:利用 HTML5 <audio> 元素的原生 API,通过 jQuery 封装插件增强复用性。


九、Web Storage 编程(localStorage / sessionStorage)

使用 jQuery 操作 localStorage

$(document).ready(function() {// 保存数据$('#saveBtn').click(function() {const name = $('#userName').val();localStorage.setItem('username', name);alert('已保存到本地存储!');});// 读取数据$('#loadBtn').click(function() {const name = localStorage.getItem('username');if (name) {$('#greeting').text(`欢迎回来,${name}`);} else {$('#greeting').text('请先保存用户名');}});// 清除数据$('#clearBtn').click(function() {localStorage.removeItem('username');$('#greeting').text('');});
});
<input type="text" id="userName" placeholder="输入姓名">
<button id="saveBtn">保存</button>
<button id="loadBtn">加载</button>
<button id="clearBtn">清除</button>
<p id="greeting"></p>

说明

  • localStorage 持久化存储(关闭浏览器仍存在)。
  • sessionStorage 仅在当前会话有效。

十、综合实例:旅游信息网前台页面设计

1. 网站主体结构(HTML5语义化)

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>悦游旅行网</title><link rel="stylesheet" href="style.css">
</head>
<body><header><h1>悦游旅行网</h1><nav><ul><li><a href="#home">首页</a></li><li><a href="#footprint">留下足迹</a></li></ul></nav></header><main><section id="home"><h2>热门目的地推荐</h2><article><h3>云南大理</h3><p>风花雪月,苍山洱海...</p></article></section><section id="footprint"><h2>留下您的足迹</h2><form id="footprintForm"><input type="text" id="visitorName" placeholder="您的姓名" required><textarea id="message" placeholder="留言内容" required></textarea><button type="submit">提交</button></form><div id="messages"></div></section></main><footer>&copy; 2025 悦游旅行网</footer><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script src="app.js"></script>
</body>
</html>

2. 留下足迹页面功能(结合 Web Storage)

// app.js
$(document).ready(function() {// 页面加载时读取历史留言loadMessages();$('#footprintForm').submit(function(e) {e.preventDefault();const name = $('#visitorName').val().trim();const msg = $('#message').val().trim();if (name && msg) {const entry = { name, msg, time: new Date().toLocaleString() };saveMessage(entry);appendMessage(entry);$('#footprintForm')[0].reset();}});function saveMessage(entry) {let messages = JSON.parse(localStorage.getItem('messages') || '[]');messages.push(entry);localStorage.setItem('messages', JSON.stringify(messages));}function loadMessages() {const messages = JSON.parse(localStorage.getItem('messages') || '[]');messages.forEach(appendMessage);}function appendMessage(entry) {const html = `<div class="message-item"><strong>${entry.name}</strong> - ${entry.time}<br>${entry.msg}</div>`;$('#messages').prepend(html);}
});

功能亮点

  • 使用 <section><article><header><footer> 等语义标签。
  • 表单提交后将留言存入 localStorage
  • 页面刷新后仍能显示历史留言。
  • 无后端依赖,纯前端实现“留言墙”。

总结

本章涵盖的核心技术栈:

技术点关键API/元素jQuery辅助作用
HTML5语义化<header>, <section>DOM操作、事件绑定
表单增强type="email/date/range"表单验证、动态交互
文件上传进度FormData, XMLHttpRequest.uploadAjax封装、进度更新
Canvas绘图canvas.getContext('2d')初始化、事件触发
音频播放<audio>插件封装、控制逻辑
Web StoragelocalStorage数据持久化、用户状态管理

所有案例均可在现代浏览器中运行,建议配合 Chrome/Firefox 测试。


如需进一步扩展(如加入 Service Worker、Geolocation 定位景点等),可在本框架基础上继续深化。

http://www.dtcms.com/a/586047.html

相关文章:

  • Flutter TweenAnimationBuilder 使用指南
  • 快速网站搭建百度推广介绍
  • 婚纱摄影网站源码自己制作app的应用程序
  • 【经验分享】Spring Authorization Server 实现详解:构建企业级OAuth2认证中心(一)
  • 北京电脑培训网站备案号查询网站网址
  • 建可收费的网站一个网站策划需要多少钱
  • 吴恩达新课程:Agentic AI(笔记7)
  • 记录一次给Dell 10代cpu 重装系统遇到的BitLocker锁相关问题处理
  • Arbess CICD实践(2) - 使用Arbess+GitLab+PostIn实现Go项目构建/主机部署及接口自动化测试
  • 家具用品:撑起家的骨架与温度
  • 响应式网站建设的未来发展6滕州网站建设助企网络
  • 仿网站模板乐清网站制作公司招聘
  • .NET异步编程中内存泄漏的终极解决方案
  • 精读《JavaScript 高级程序设计 第4版》第14章 DOM(一)
  • Tr0ll 1 (VulnHub)做题笔记
  • 南宁建设银行官网招聘网站建设集团是做什么的
  • 【瑞芯微】【rk3128】【移植 qt 5.12.9】
  • 第十章 VLAN间通信
  • 苹果公司基于Transformer架构的蛋白质折叠开源模型SimpleFold-安装体验与比较
  • 网站制作的一般步骤中国建设人才网络学院
  • 长沙哪家做网站设计好网站设计制作的服务和质量
  • ENSP Pro Lab笔记:配置STP/RSTP/MSTP(5)
  • html5网站检测网站标签是什么
  • Java 内存模型(JMM)与 volatile、synchronized 可见性原理
  • 怎么开网站合肥做app公司
  • git本地分支创建
  • 操作系统(11)进程描述与控制--5种IO状态(1)
  • 整体设计 全面梳理复盘 之23 九宫格框架搭建与一体化开发环境设计 编程 之2
  • xm-软件测试工程师面经准备
  • python3.13 windows控制台使用python命令返回空行,python 命令执行失败,cmd python命令执行不显示