【js小案例】视频倍数播放、计算机、待办事项管理

news2024/12/25 9:20:05

视频倍数播放示例图:

 视频倍数播放代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>控制视频播放速度</title>
</head>
<body>
  <video id="myVideo" width="400" controls>
    <source src="http://www.kacheduo.com/resource/userfiles/video/202306/06224516_48.mp4" type="video/mp4">
    Your browser does not support HTML5 video.
  </video>

  <label for="speedSelector">选择播放速度:</label>
  <select id="speedSelector">
    <option value="1">正常速度</option>
    <option value="0.5">0.5倍速</option>
    <option value="1.5">1.5倍速</option>
    <option value="2">2倍速</option>
  </select>

  <script>
    // 获取视频元素
    const video = document.getElementById('myVideo');

    // 获取速度选择器元素
    const speedSelector = document.getElementById('speedSelector');

    // 监听速度选择器的变化事件
    speedSelector.addEventListener('change', function() {
      // 获取选中的速度值
      const selectedSpeed = parseFloat(speedSelector.value);

      // 设置视频播放速度
      video.playbackRate = selectedSpeed;
    });
  </script>
</body>
</html>

计算机效果图:

 计算机代码:

<!DOCTYPE html>
<html>

<head>
    <title>计算器</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }

        .calculator {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 10px;
            max-width: 300px;
            margin: 20px auto;
            padding: 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }

        .calculator input {
            grid-column: span 4;
            padding: 10px;
            font-size: 18px;
        }

        .calculator button {
            padding: 10px;
            font-size: 16px;
        }
    </style>
</head>

<body>
    <div class="calculator">
        <input id="result" type="text" disabled>
        <button onclick="appendNumber('7')">7</button>
        <button onclick="appendNumber('8')">8</button>
        <button onclick="appendNumber('9')">9</button>
        <button onclick="appendOperator('+')">+</button>
        <button onclick="appendNumber('4')">4</button>
        <button onclick="appendNumber('5')">5</button>
        <button onclick="appendNumber('6')">6</button>
        <button onclick="appendOperator('-')">-</button>
        <button onclick="appendNumber('1')">1</button>
        <button onclick="appendNumber('2')">2</button>
        <button onclick="appendNumber('3')">3</button>
        <button onclick="appendOperator('*')">*</button>
        <button onclick="appendNumber('0')">0</button>
        <button onclick="appendOperator('.')">.</button>
        <button onclick="calculate()">=</button>
        <button onclick="appendOperator('/')">/</button>
        <button onclick="clearResult()">C</button>
    </div>

    <script>
        // eval() 是 JavaScript 的一个全局函数,用于执行传递给它的字符串中的 JavaScript 代码。它将字符串作为参数,并将其解析为有效的 JavaScript 代码进行执行。
        // 添加数字
        function appendNumber(number) {
            var result = document.getElementById("result");
            result.value += number;
        }
        // 添加预算符
        function appendOperator(operator) {
            var result = document.getElementById("result");
            result.value += operator;
        }
        // 计算结果
        function calculate() {
            var result = document.getElementById("result");
            try {
                result.value = eval(result.value);
            } catch (error) {
                result.value = "Error";
            }
        }
        // 清除内容
        function clearResult() {
            var result = document.getElementById("result");
            result.value = "";
        }
    </script>
</body>

</html>

待办事项管理效果图:

 待办事项管理代码:

<!DOCTYPE html>
<html>

<head>
    <title>待办事项管理</title>
    <style>
        .completed {
            text-decoration: line-through;
            color: gray;
        }

        .delClass {
            color: darkblue;
            text-decoration: underline;
            padding-left: 60px;
        }
    </style>
</head>

<body>
    <h1>待办事项管理</h1>
    <input type="text" id="todoInput" placeholder="添加新的待办事项">
    <ol id="todoList"></ul>

    <script>
        // JavaScript 代码
        const todos = [];

        // 获取 DOM 元素
        const todoInput = document.getElementById("todoInput");
        const todoList = document.getElementById("todoList");

        // 添加待办事项
        todoInput.addEventListener("keypress", function (event) {
            if (event.key === "Enter") {
                const newTodo = todoInput.value.trim();
                if (newTodo !== "") {
                    todos.push({
                        text: newTodo,
                        completed: false
                    });
                    renderTodos();
                    todoInput.value = "";
                }
            }
        });

        // 渲染待办事项列表
        function renderTodos() {
            todoList.innerHTML = "";
            for (let i = 0; i < todos.length; i++) {
                const todoItem = document.createElement("li");
                const todoText = document.createElement("span"); // 内容
                const tododel = document.createElement("span"); // 删除按钮
                todoText.textContent = todos[i].text;
                todoText.addEventListener("click", function () { // 添加点击事件监听器
                    todos[i].completed = !todos[i].completed;
                    renderTodos();
                });
                tododel.textContent = '删除'
                tododel.addEventListener("click", function () { // 添加点击事件监听器
                    todos.splice(i, 1)
                    renderTodos();
                });
                tododel.classList.add('delClass')
                if (todos[i].completed) { // 根据完成状态添加样式类
                    todoText.classList.add("completed");
                }
                todoItem.appendChild(todoText);
                todoItem.appendChild(tododel);
                todoList.appendChild(todoItem);
            }
        }

        // 页面加载时初始化列表显示
        renderTodos();
    </script>
</body>

</html>

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

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

相关文章

c语言内存

程序是保存在硬盘中的&#xff0c;要载入内存才能运行&#xff0c;CPU也被设计为只能从内存中读取数据和指令。 对于CPU来说&#xff0c;内存仅仅是一个存放指令和数据的地方&#xff0c;并不能在内存中完成计算功能&#xff0c; 如&#xff1a;计算abc,必须将a,b,c都读取到CPU…

解锁生成式AI万亿规模市场,亚马逊云科技有效降低AIGC门槛

ChatGPT一声惊雷&#xff0c;让全球见识到了生成式AI的威力。当前&#xff0c;生成式AI进入一个爆发时刻&#xff0c;并在许多领域中展现出它的无限潜力。那么&#xff0c;在这轮生成式AI大爆发中&#xff0c;企业应当如何抓住机遇&#xff0c;顺应这一波时代的潮水&#xff0c…

PHP:数据库中设置文本长度,通过js去限制前台文本长度。扩展:数据类型的限制

效果图 如上图&#xff1a;当测试111的长度超过数据库中限制的长度&#xff0c;进行提示&#xff0c;并且自动将多余部分截掉 HTML代码 <!-- 附加属性 --> <div class"text-nav-1 " id"append1"> <div >append1</div><input…

如何使经纬度标注在图框内部

在生成经纬网格之后&#xff0c;如果标注了经纬度&#xff0c;仔细查看图框边缘&#xff0c;可以看到标注的经纬度出现在了图框的外面&#xff0c;这样显得不是很美观&#xff0c;我们可以通过偏移的方法让其回到图框内部&#xff0c;这里为大家介绍一下具体的操作方法&#xf…

达梦数据库 SQL交互式查询工具打不开问题处理

目录 1、开始菜单找到 “SQL交互式查询工具”。 2、 右键进入 打开文件位置。 3、右键进入属性&#xff0c;找到目标位置 4、进入我的电脑&#xff0c;访问该地址&#xff0c;并授予此地址权限 1、开始菜单找到 “SQL交互式查询工具”。 2、 右键进入 打开文件位置。 3、右…

【ARM Coresight 及 DS-5 介绍 2 - ARM Coresight 介绍】

文章目录 1.1 ARM Coresight 介绍1.1.1 ARM Coresight 发展历史 1.2 ARM Coresight 框架介绍1.1.1 Trace 通路1.1.3 Debug 通路1.1.4 Trigger 通路 1.1 ARM Coresight 介绍 ARM Coresight是ARM公司提供的一种调试和跟踪技术&#xff0c;用于ARM处理器的调试和性能分析。它通过…

根据ABAP字符寻找程序

知识来之不易&#xff0c;还请多点赞&#xff01; SE38执行程序RPR_ABAP_SOURCE_SCAN

实现流程化办公,该说不说还得借力低代码开发框架

在科技的推动下&#xff0c;流程化办公已经成为潮流。如何实现流程化办公&#xff0c;让越来越多的企业打通各部门之间的协作&#xff0c;实现高效率发展&#xff1f;借力低代码开发框架&#xff0c;让那遥不可及的梦想变为现实&#xff0c;跟传统操作方式比起来&#xff0c;低…

Pandas库如何在导出表格的时候去掉索引列(隐藏索引列)

import pandasdata {sku1:[1,2,3],sales:[11,22,33], } doc pandas.DataFrame(data)file_path rC:\Users\Zhao\Desktop\test1.xlsx doc.to_excel(file_path,indexFalse) # indexFalse 可以隐藏 索引列

从php5.6到golang1.19-文库App性能跃迁之路

作者 | 百度文库App 导读 本文深入浅出地分享了百度文库App服务端技术栈从PHP迁移至Go的实战经验&#xff0c;包含了技术选型、基础建设、流量迁移的具体方案&#xff0c;以及核心项目案例的重构实践。 全文6209字&#xff0c;预计阅读时间16分钟。 01 动机 长期以来&#xff…

异地使用PLSQL远程连接访问Oracle数据库【内网穿透】

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 转载自cpolar极点云文章&#xff1a;公网远程连接…

【036】读懂C++的强制类型转换static_cast、const_cast、dynamic_cast以及reinterpret_cast

C的强制类型转换 引言一、类型转换简介二、上行、下行转换的概述三、static_cast 静态类型转换四、dynamic_cast 静态类型转换&#xff08;推荐使用&#xff09;五、const_cast 常量转换六、reinterpret_cast 重新解释转换&#xff08;最不安全&#xff09;总结 引言 &#x1f…

微信支付(一):小程序支付(go+gin+内网穿透)

一、前置条件 &#xff08;1&#xff09;go语言&#xff0c;1.18 &#xff08;2&#xff09;Gin、第三方依赖包&#xff1a;gopay【github.com/go-pay/gopay/alipay】https://github.com/go-pay/gopay/blob/main/doc/wechat_v3.md &#xff08;3&#xff09;微信支付相关信息…

Ubuntu安装:显卡驱动、CUDA、Anaconda

Ubuntu安装&#xff1a;显卡驱动、CUDA、Anaconda 摘要1.安装NVIDIA显卡驱动2.安装CUDA3.安装Anaconda Windows环境安装CUDA和Pytorch见&#xff1a;Pytorch入门&#xff1a;3.安装 环境&#xff1a;x86_64 Linux ubuntu18 4.150.0-20-generic 摘要 本篇博客对Ubuntu系统安装…

#消防知识#自动灭火系统是什么?

自动灭火系统是指能够在发生火灾时自动检测、控制和扑灭火灾的系统&#xff0c;包括自动喷水灭火系统、气体灭火系统、干粉灭火系统、气溶胶灭火系统等。不同的自动灭火系统有不同的组成部件、工作原理和适用范围&#xff0c;以下是一些简要的介绍&#xff1a;• 自动喷水灭火系…

汽车远程升级(OTA)定义与技术体系

1.汽车OTA定义 1.1. OTA概述 OTA&#xff08;Over-the-air technology&#xff09;是一种通过无线方式而不是使用电缆或其他本地连接进行数据传输的远程升级。能够实现对现有性能/功能的优化、新功能推送等。OTA技术最早应用于PC&#xff0c;而后在手机上普及&#xff0c;终结…

Go语言程序设计(二)常量、变量、布尔类型与运算符

一、常量、变量与命名规则 常量使用关键字const声明&#xff1b;变量可以使用关键字var声明&#xff0c;也可以使用快捷变量声明语法。Go语言可以自动推断出所声明变量的类型&#xff0c;但是如果需要显式指定其类型也是合法的&#xff0c;比如声明一种与Go语言的常规推断不同的…

途乐证券|沪指缩量跌0.69%,汽车等板块走弱,稀土概念逆市活跃

6日早盘&#xff0c;三大股指股指盘中震动回落&#xff0c;科创50指数逆市上扬&#xff1b;两市半日成交超5000亿元&#xff0c;北向资金小幅净流出。 到午间收盘&#xff0c;沪指跌0.53%报3205.97点&#xff0c;深成指跌0.39%&#xff0c;创业板指跌0.61%&#xff0c;科创50指…

新版 Alist + RaiDrive 挂载阿里云盘 Open 到本地,实现网盘本地化

新版 Alist RaiDrive 挂载阿里云盘 Open 到本地&#xff0c;实现网盘本地化 1. 下载 Alist 和 RaiDrive2. 配置 Alist3. 填写挂载路径和刷新令牌4. 获取刷新令牌5. 使用 RaiDrive 挂载 1. 下载 Alist 和 RaiDrive 下载地址&#xff1a;Alist RaiDrive 安装 提取码: qu38 Al…

XXX SAP系统中支持XX动力替代件功能(投稿数字化月报三)

XXX集团、XX动力、XXX汽车IT组成替代件开发小组&#xff0c;快速高效完成XX动力替代件业务需求。提供从XX动力的PLM系统中开发新增含有替代件功能的BOM物料清单、在XXX汽车SAP系统中启用替代件功能、再到现场替换件业务执行的全套解决方案。 在BOM上体现出物料的替换关系&#…