2024-08-23



// 定义一个布尔类型的变量并赋值
var isComplete = true;
 
// 输出变量的值
console.log(isComplete); // 应该输出: true
 
// 修改变量的值
isComplete = false;
 
// 输出变量的值
console.log(isComplete); // 应该输出: false

这段代码展示了如何在JavaScript中定义一个布尔类型的变量,如何输出它的值,以及如何修改这个变量的值。这是学习JavaScript基础的一个很好的例子。

2024-08-23

以下是一个简单的HTML5抽奖活动的示例代码:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>抽奖活动</title>
    <style>
        body {
            height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            text-align: center;
            font-family: Arial, sans-serif;
        }
        #wheel {
            width: 300px;
            height: 300px;
            image-rendering: -moz-crisp-edges;
            image-rendering: -o-crisp-edges;
            image-rendering: -webkit-optimize-contrast;
            -ms-interpolation-mode: nearest-neighbor;
        }
    </style>
</head>
<body>
    <canvas id="wheel" width="300" height="300"></canvas>
    <script>
        const canvas = document.getElementById('wheel');
        const ctx = canvas.getContext('2d');
        const colors = ['#e74c3c', '#f1c40f', '#1abc9c', '#3498db', '#9b59b6'];
 
        // 绘制轮盘
        function drawWheel() {
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            for (let i = 0; i < 5; i++) {
                const angle = Math.PI * 2 / 5 * i;
                const x = canvas.width / 2 + Math.cos(angle) * 150;
                const y = canvas.height / 2 + Math.sin(angle) * 150;
                ctx.beginPath();
                ctx.fillStyle = colors[i];
                ctx.arc(x, y, 50, 0, Math.PI * 2);
                ctx.fill();
            }
        }
 
        // 随机选择一个奖项
        function pickWinner() {
            const angle = Math.random() * Math.PI * 2;
            const x = canvas.width / 2 + Math.cos(angle) * 150;
            const y = canvas.height / 2 + Math.sin(angle) * 150;
            ctx.beginPath();
            ctx.fillStyle = '#fafafa';
            ctx.arc(x, y, 50, 0, Math.PI * 2);
            ctx.fill();
        }
 
        // 初始化轮盘
        drawWheel();
        // 开始抽奖
        pickWinner();
    </script>
</body>
</html>

这段代码创建了一个简单的HTML页面,其中包含了一个<canvas>元素来绘制一个简单的轮盘。轮盘有五个区域,每个区域的颜色不同。页面加载时,会在轮盘上随机选择一个区域并将其绘制为白色(中间的圆圈),从而模拟抽奖动作。这个示例提供了一个基本的抽奖活动的实现,可以根据实际需求进行功能扩展和样式美化。

2024-08-23

Timeline Canvas 是一个基于HTML5的开源库,用于创建交互式的时间线图表。以下是如何使用Timeline Canvas创建一个简单的时间线的示例代码:




<!DOCTYPE html>
<html>
<head>
    <title>Timeline Canvas Example</title>
    <script src="https://cdn.jsdelivr.net/npm/timeline-chart@1.0.2/dist/timeline-chart.min.js"></script>
    <style>
        #my-timeline-chart {
            width: 100%;
            height: 400px;
        }
    </style>
</head>
<body>
    <div id="my-timeline-chart"></div>
    <script>
        var chart = new timelineChart.TimelineChart('#my-timeline-chart');
        chart.setGroups([
            {
                id: 'group1',
                content: 'Group 1',
                nestedGroups: []
            }
        ]);
        chart.setItems([
            {
                id: 'item1',
                group: 'group1',
                content: 'Item 1',
                start: new Date('2023-01-01T08:00:00Z'),
                end: new Date('2023-01-01T09:00:00Z'),
                type: 'point'
            },
            {
                id: 'item2',
                group: 'group1',
                content: 'Item 2',
                start: new Date('2023-01-01T09:00:00Z'),
                end: new Date('2023-01-01T10:00:00Z'),
                type: 'range'
            }
        ]);
    </script>
</body>
</html>

这段代码创建了一个简单的时间线,其中包含了两个事件:Item 1 是一个点事件,Item 2 是一个时间范围。代码中使用了timelineChart.TimelineChart来初始化时间线图表,并通过setGroupssetItems方法添加了分组和项目。

2024-08-23

Web SQL 是一种不再被推荐使用的技术,因为它已经从 HTML5 规范中被移除。然而,为了完整性,这里提供一个简单的示例代码:




// 打开或创建一个数据库
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
 
// 创建表
db.transaction(function (tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
});
 
// 插入数据
db.transaction(function (tx) {
   tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鸟教程")');
});
 
// 查询数据
db.transaction(function (tx) {
   tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
       var len = results.rows.length, i;
       console.log('查询记录:');
       for (i = 0; i < len; i++){
        console.log(results.rows.item(i).log);
       }
   }, null);
});
 
// 更新数据
db.transaction(function (tx) {
   tx.executeSql('UPDATE LOGS SET log = ? WHERE id = 1', ['更新菜鸟教程']);
});
 
// 删除数据
db.transaction(function (tx) {
   tx.executeSql('DELETE FROM LOGS WHERE id = 1');
});

这个示例展示了如何使用 Web SQL 的基本操作,包括创建表、插入数据、查询数据、更新数据和删除数据。虽然 Web SQL 不推荐使用,但这个示例可以帮助理解其基本概念。

2024-08-23



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML5拖放操作示例</title>
    <style>
        #draggable {
            width: 200px;
            height: 200px;
            background: skyblue;
            color: white;
            text-align: center;
            line-height: 200px;
            border: 2px dashed #333;
            cursor: move;
        }
        #droppable {
            width: 400px;
            height: 400px;
            background: orange;
            position: absolute;
            left: 400px;
            top: 20px;
            border: 2px solid #000;
        }
    </style>
</head>
<body>
    <div id="draggable" draggable="true">拖动我</div>
    <div id="droppable">放置区域</div>
 
    <script>
        const dragItem = document.getElementById('draggable');
        const dropArea = document.getElementById('droppable');
 
        dragItem.addEventListener('dragstart', function(event) {
            event.dataTransfer.setData('text/plain', event.target.id);
        });
 
        dropArea.addEventListener('dragover', function(event) {
            event.preventDefault(); // 阻止默认行为
            event.dataTransfer.dropEffect = 'move'; // 设置拖放操作的视觉效果
        });
 
        dropArea.addEventListener('drop', function(event) {
            event.preventDefault();
            const id = event.dataTransfer.getData('text');
            const draggedElement = document.getElementById(id);
            dropArea.appendChild(draggedElement);
        });
    </script>
</body>
</html>

这段代码实现了一个简单的拖放操作。用户可以点击#draggable元素并将其拖动到#droppable元素内部,完成放置操作。代码中使用了dragstartdragoverdrop事件,并通过event.dataTransfer对象来管理拖放的数据。

2024-08-23

HTML5引入了一些新的input类型,它们提供了更好的输入控制和校验,以及更好的用户体验。以下是一些常见的HTML5新Input类型的示例代码:

  1. 日期选择器(Date Picker):



<input type="date" id="date" name="date">
  1. 时间选择器(Time Picker):



<input type="time" id="time" name="time">
  1. 邮箱地址输入(Email):



<input type="email" id="email" name="email">
  1. 数值输入(Number):



<input type="number" id="number" name="number" min="0" max="100">
  1. 手机号码输入(Telephone):



<input type="tel" id="tel" name="tel">
  1. 搜索框(Search):



<input type="search" id="search" name="search">
  1. 范围选择器(Range):



<input type="range" id="range" name="range" min="0" max="100">
  1. 颜色选择器(Color):



<input type="color" id="color" name="color">
  1. 复选框(Checkbox):



<input type="checkbox" id="checkbox" name="checkbox">
  1. 单选按钮(Radio):



<input type="radio" id="radio" name="radio-group">

通过使用这些新的input类型,开发者可以创建更加现代和直观的表单输入体验,同时,这些类型还能自动校验输入的有效性,提高了用户的输入质量和开发者的工作效率。

2024-08-23

forEach 方法对数组的每个元素执行一次提供的函数。以下是一个简单的示例,演示如何使用 forEach 方法来迭代数组并在控制台输出每个元素的值:




<!DOCTYPE html>
<html>
<head>
<title>Array forEach Method Example</title>
</head>
<body>
<script>
// 定义一个数组
var numbers = [1, 2, 3, 4, 5];
 
// 使用 forEach 方法遍历数组并输出每个元素
numbers.forEach(function(number) {
    console.log(number);
});
</script>
</body>
</html>

在这个例子中,forEach 方法接受一个函数作为参数,这个函数对数组 numbers 中的每个元素执行。函数内部,我们使用 console.log 在控制台输出当前遍历到的元素值。

2024-08-23

HTML5引入了一些新的表单控件和表单属性,以下是一些常见的HTML5新增表单元素和属性:

  1. 色彩选择器 <input type="color">
  2. 日期选择器 <input type="date">
  3. 时间选择器 <input type="time">
  4. 日期时间选择器 <input type="datetime-local">
  5. 周选择器 <input type="week">
  6. 月份选择器 <input type="month">
  7. 搜索框 <input type="search">
  8. 电话号码 <input type="tel">
  9. 数字 <input type="number">
  10. 范围 <input type="range">
  11. email <input type="email">
  12. 网址 <input type="url">
  13. 必填(required属性)
  14. 模式验证(pattern属性)
  15. 插槽显示(placeholder属性)
  16. 自动对焦(autofocus属性)
  17. 只读(readonly属性)
  18. 禁用(disabled属性)
  19. 多个选项同时选择(multiple属性)

示例代码:




<form>
  <label for="username">用户名:</label>
  <input type="text" id="username" name="username">
 
  <label for="bio">简历:</label>
  <input type="text" id="bio" name="bio" placeholder="输入简历">
 
  <label for="birthday">生日:</label>
  <input type="date" id="birthday" name="birthday">
 
  <label for="email">电子邮件:</label>
  <input type="email" id="email" name="email" required>
 
  <label for="phone">电话号码:</label>
  <input type="tel" id="phone" name="phone" pattern="[0-9]{3}-[0-9]{2}-[0-9]{3}">
 
  <label for="password">密码:</label>
  <input type="password" id="password" name="password">
 
  <label for="photo">照片:</label>
  <input type="file" id="photo" name="photo">
 
  <input type="submit" value="提交">
</form>

这个示例展示了如何在HTML5中使用不同的新表单元素,以及如何使用placeholderrequiredpattern等属性来增强表单验证和用户体验。

2024-08-23

HTML5进阶内容主要包括一些较为高级的HTML5特性和功能,例如Canvas绘图、SVG绘图、地理位置API、多媒体标签(如<video><audio>)、表单控件(如日期选择器、颜色选择器)、Web Workers、Web Storage(本地存储)、WebSocket通信等。

以下是一些示例代码:

  1. 使用Canvas绘图:



<canvas id="myCanvas" width="200" height="100"></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.fillStyle = '#FF0000';
ctx.fillRect(0, 0, 150, 75);
</script>
  1. 使用SVG绘图:



<svg width="100" height="100">
  <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
  1. 地理位置API:



<script>
if ("geolocation" in navigator) {
  navigator.geolocation.getCurrentPosition(function(position) {
    console.log("Latitude is :", position.coords.latitude);
    console.log("Longitude is :", position.coords.longitude);
  });
} else {
  console.log("Geolocation is not supported by this browser.");
}
</script>
  1. 多媒体播放:



<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>
  1. 使用Web Workers:



// main.js
const worker = new Worker('worker.js');
worker.postMessage('hello');
worker.onmessage = function(e) {
  console.log('Message received from worker: ' + e.data);
};
 
// worker.js
onmessage = function(e) {
  console.log('Message received in worker: ' + e.data);
  postMessage('hello back');
};
  1. 使用WebSocket进行实时通信:



var ws = new WebSocket("ws://localhost:8080");
ws.onopen = function(evt) { 
  console.log("Connection open ..."); 
  ws.send("Hello WebSockets!");
};
 
ws.onmessage = function(evt) {
  console.log( "Received Message: " + evt.data);
};
 
ws.onclose = function(evt) {
  console.log("Connection closed.");
};      

这些代码示例展示了HTML5中一些高级特性的使用方法,可以帮助开发者在实际项目中应用这些功能。

2024-08-23

HTML5是HTML的最新标准,于2014年10月由万维网联盟(W3C)完成标准制定。HTML5提供了大量新特性,如Canvas、SVG、地理位置API、多媒体标签、本地存储等,以及更加语义化和互动式的HTML标签。

基本的HTML5文档框架如下:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document Title</title>
</head>
<body>
 
    <h1>这是一个标题</h1>
    <p>这是一个段落。</p>
    <!-- 更多内容 -->
 
</body>
</html>

解释:

  • <!DOCTYPE html>:HTML5强制要求的文档类型声明。
  • <html>:HTML文档的开始和结束标签。
  • <head>:包含文档的元数据,如字符集定义、标题等。
  • <meta charset="UTF-8">:指定文档字符编码为UTF-8。
  • <title>Document Title</title>:定义浏览器工具栏上的标题。
  • <body>:包含页面的主要内容。

这个基本框架为创建HTML5页面提供了一个起点。