拖放与地理定位
HTML5 的拖放(Drag and Drop)允许用户拖动页面元素到指定区域,常用于文件上传、排序、看板等交互。地理定位(Geolocation)可以获取用户设备的位置信息,做地图、附近门店这类功能。
拖放的基本流程
- 给被拖元素设置
draggable="true" - 监听它的
dragstart事件,用dataTransfer.setData携带数据 - 在目标区域监听
dragover(要 preventDefault 才能放)和drop事件
地理定位
navigator.geolocation.getCurrentPosition 获取位置,成功回调里能拿到经纬度。注意:浏览器会弹窗请求用户授权,且必须 HTTPS 环境下才能使用。
代码示例
<div id="box" draggable="true"
style="width:120px;padding:16px;background:#7cb342;color:#fff;border-radius:8px;text-align:center;">
拖动我
</div>
<div id="target" style="margin-top:20px;padding:40px;border:2px dashed #999;border-radius:8px;">
放到这里
</div>
<script>
var box = document.getElementById("box");
var target = document.getElementById("target");
box.addEventListener("dragstart", function (e) {
e.dataTransfer.setData("text/plain", "来自盒子的数据");
});
target.addEventListener("dragover", function (e) {
e.preventDefault();
});
target.addEventListener("drop", function (e) {
e.preventDefault();
target.textContent = "收到:" + e.dataTransfer.getData("text/plain");
target.style.background = "#f1f8e9";
});
// 获取位置
navigator.geolocation.getCurrentPosition(function (pos) {
console.log("经度:", pos.coords.longitude, "纬度:", pos.coords.latitude);
});
</script>
📚 HTML 标签速查
常用条目速查,完整版见对应教程章节。可复制代码到在线运行中测试。
| 写法 / 语法 | 作用 |
|---|---|
<h1>-<h6> | 标题,h1 最高,每页只用一个 h1 |
<p> | 段落,自动加前后间距 |
<a href=""> | 链接,href 是目标地址 |
<img src="" alt=""> | 图片,src 地址,alt 替代文字 |
<ul> / <li> | 无序列表 |
<ol> / <li> | 有序列表,数字编号 |
<dl> / <dt> / <dd> | 自定义列表:术语 + 说明 |
<table> / <tr> / <td> / <th> | 表格:行 / 单元格 / 表头 |
<form action="" method=""> | 表单,action 提交地址,method 提交方式 |
<input type=""> | 输入控件,type 有 text/password/email/number 等 |
<textarea> | 多行文本输入 |
<select> / <option> | 下拉框及选项 |
<button type="submit"> | 按钮,submit 提交表单 |
<strong> / <em> | 加粗(重要)/ 斜体(强调) |
<div> / <span> | 区块容器 / 行内容器 |
<header> <nav> <main> | 语义化:页眉 / 导航 / 主体 |
<section> <article> <aside> | 语义化:分节 / 独立内容 / 侧栏 |
<footer> | 页脚:版权、备案 |
<video> / <audio> | HTML5 视频 / 音频,加 controls 显示控制条 |
<iframe src=""> | 嵌入其他网页 |
<!-- 注释 --> | HTML 注释,不显示在页面 |
<br> / <hr> | 换行 / 水平分割线 |
<pre> | 保留空格和换行,原样显示 |
<blockquote> / <q> | 块级引用 / 行内引用 |
<figure> / <figcaption> | 图文组合及说明 |