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

【Javascript】-一些原生的网页设计案例

JavaScript 网页设计案例

1. 动态时钟
  • 功能描述:在网页上显示一个动态更新的时钟,包括小时、分钟和秒。
  • 实现思路
    • 使用 setInterval 函数每秒更新时间。
    • 获取当前时间并更新页面上的文本。
  • 代码示例
    <div id="clock"></div>
    <script>function updateClock() {const now = new Date();const hours = now.getHours().toString().padStart(2, '0');const minutes = now.getMinutes().toString().padStart(2, '0');const seconds = now.getSeconds().toString().padStart(2, '0');document.getElementById('clock').textContent = `${hours}:${minutes}:${seconds}`;}setInterval(updateClock, 1000);updateClock(); // 初始化时立即更新一次
    </script>
    
2. 菜单切换效果
  • 功能描述:点击菜单项时,显示或隐藏相应的内容区域。
  • 实现思路
    • 使用事件监听器监听点击事件。
    • 根据点击的菜单项显示或隐藏相应的内容。
  • 代码示例
    <ul id="menu"><li onclick="showContent('home')">首页</li><li onclick="showContent('about')">关于我们</li><li onclick="showContent('contact')">联系我们</li>
    </ul>
    <div id="content"><div id="home" class="content-item">欢迎来到首页!</div><div id="about" class="content-item" style="display: none;">关于我们的一些信息。</div><div id="contact" class="content-item" style="display: none;">联系方式和地址。</div>
    </div>
    <script>function showContent(id) {const contentItems = document.querySelectorAll('.content-item');contentItems.forEach(item => item.style.display = 'none');document.getElementById(id).style.display = 'block';}
    </script>
    
3. 表单验证
  • 功能描述:在用户提交表单前进行简单的输入验证。
  • 实现思路
    • 使用 addEventListener 监听表单的提交事件。
    • 检查输入是否符合要求,如非空、邮箱格式等。
  • 代码示例
    <form id="myForm"><label for="name">姓名:</label><input type="text" id="name" required><br><label for="email">邮箱:</label><input type="email" id="email" required><br><button type="submit">提交</button>
    </form>
    <script>document.getElementById('myForm').addEventListener('submit', function(event) {event.preventDefault(); // 阻止表单默认提交行为const name = document.getElementById('name').value;const email = document.getElementById('email').value;if (name === '' || email === '') {alert('姓名和邮箱不能为空!');return;}if (!email.includes('@')) {alert('请输入有效的邮箱地址!');return;}alert('表单提交成功!');this.submit(); // 提交表单});
    </script>
    
4. 图片轮播
  • 功能描述:在网页上实现图片轮播效果。
  • 实现思路
    • 使用 setInterval 定时切换图片。
    • 使用 CSS 控制图片的显示和隐藏。
  • 代码示例
    <div id="carousel"><img src="image1.jpg" class="carousel-image" style="display: block;"><img src="image2.jpg" class="carousel-image" style="display: none;"><img src="image3.jpg" class="carousel-image" style="display: none;">
    </div>
    <script>let currentIndex = 0;const images = document.querySelectorAll('.carousel-image');function showNextImage() {images[currentIndex].style.display = 'none';currentIndex = (currentIndex + 1) % images.length;images[currentIndex].style.display = 'block';}setInterval(showNextImage, 3000); // 每3秒切换一次图片
    </script>
    
5. 模态框(Modal)
  • 功能描述:点击按钮后弹出一个模态框,模态框内可以显示内容或表单。
  • 实现思路
    • 使用 CSS 控制模态框的显示和隐藏。
    • 使用 JavaScript 监听按钮点击事件,显示或隐藏模态框。
  • 代码示例
    <button id="openModal">打开模态框</button>
    <div id="modal" class="modal"><div class="modal-content"><span class="close">&times;</span><p>这是一个模态框</p></div>
    </div><style>.modal {display: none;position: fixed;z-index: 1;left: 0;top: 0;width: 100%;height: 100%;overflow: auto;background-color: rgba(0,0,0,0.4);}.modal-content {background-color: #fefefe;margin: 15% auto;padding: 20px;border: 1px solid #888;width: 80%;}.close {color: #aaa;float: right;font-size: 28px;font-weight: bold;}.close:hover,.close:focus {color: black;text-decoration: none;cursor: pointer;}
    </style><script>const modal = document.getElementById('modal');const openModalBtn = document.getElementById('openModal');const closeModalBtn = document.querySelector('.close');openModalBtn.addEventListener('click', () => {modal.style.display = 'block';});closeModalBtn.addEventListener('click', () => {modal.style.display = 'none';});window.addEventListener('click', (event) => {if (event.target == modal) {modal.style.display = 'none';}});
    </script>
    
6. 滚动加载更多
  • 功能描述:当用户滚动到页面底部时,自动加载更多内容。
  • 实现思路
    • 使用 IntersectionObserver API 监听元素是否进入视口。
    • 当元素进入视口时,加载更多内容。
  • 代码示例
    <div id="content"><div class="item">内容1</div><div class="item">内容2</div><div class="item">内容3</div><div id="load-more" class="load-more">加载更多</div>
    </div><style>.item {height: 200px;border: 1px solid #ccc;margin: 10px 0;}
    </style><script>const loadMore = document.getElementById('load-more');const observer = new IntersectionObserver((entries) => {entries.forEach(entry => {if (entry.isIntersecting) {loadMoreContent();}});}, { threshold: 0.1 });observer.observe(loadMore);function loadMoreContent() {const content = document.getElementById('content');for (let i = 0; i < 3; i++) {const newItem = document.createElement('div');newItem.className = 'item';newItem.textContent = `新内容${i + 1}`;content.appendChild(newItem);}}
    </script>
    
7. 拖放排序
  • 功能描述:允许用户通过拖放操作对列表项进行排序。
  • 实现思路
    • 使用 dragstartdragoverdrop 事件处理拖放操作。
    • drop 事件中更新列表项的顺序。
  • 代码示例
    <ul id="sortable-list"><li draggable="true">项目1</li><li draggable="true">项目2</li><li draggable="true">项目3</li>
    </ul><style>ul {list-style-type: none;padding: 0;}li {background-color: #f1f1f1;margin: 5px 0;padding: 10px;cursor: move;}
    </style><script>const sortableList = document.getElementById('sortable-list');const items = sortableList.querySelectorAll('li');items.forEach(item => {item.addEventListener('dragstart', dragStart);item.addEventListener('dragover', dragOver);item.addEventListener('drop', drop);});function dragStart(e) {e.dataTransfer.setData('text/plain', e.target.id);setTimeout(() => {e.target.classList.add('hide');}, 0);}function dragOver(e) {e.preventDefault();e.target.classList.add('over');}function drop(e) {e.preventDefault();const draggedItem = document.getElementById(e.dataTransfer.getData('text/plain'));const dropItem = e.target.closest('li');const parent = dropItem.parentNode;if (dropItem.classList.contains('over')) {parent.insertBefore(draggedItem, dropItem);} else {parent.appendChild(draggedItem);}items.forEach(item => {item.classList.remove('over', 'hide');});}
    </script>
    
8. 实时搜索过滤
  • 功能描述:在用户输入搜索关键词时,实时过滤列表中的项目。
  • 实现思路
    • 使用 input 事件监听搜索框的输入变化。
    • 根据输入的关键词过滤列表项,并更新显示。
  • 代码示例
    <input type="text" id="search" placeholder="搜索...">
    <ul id="list"><li>苹果</li><li>香蕉</li><li>橙子</li><li>葡萄</li><li>西瓜</li>
    </ul><script>const searchInput = document.getElementById('search');const list = document.getElementById('list');const items = list.querySelectorAll('li');searchInput.addEventListener('input', filterList);function filterList() {const filterValue = searchInput.value.toLowerCase();items.forEach(item => {if (item.textContent.toLowerCase().includes(filterValue)) {item.style.display = 'block';} else {item.style.display = 'none';}});}
    </script>
    

所有的现代前端框架,不管是数据驱动还是事件驱动,底层都是基于原生的html和javascript进行封装和管理,所以了解最底层的原理,很重要。

相关文章:

【Javascript】-一些原生的网页设计案例

JavaScript 网页设计案例 1. 动态时钟 功能描述&#xff1a;在网页上显示一个动态更新的时钟&#xff0c;包括小时、分钟和秒。实现思路&#xff1a; 使用 setInterval 函数每秒更新时间。获取当前时间并更新页面上的文本。 代码示例&#xff1a;<div id"clock"…...

SpringBoot开发——Spring Boot 3种定时任务方式

文章目录 一、什么是定时任务二、代码示例1、 @Scheduled 定时任务2、多线程定时任务3、基于接口(SchedulingConfigurer)实现动态更改定时任务3.1 数据库中存储cron信息3.2 pom.xml文件中增加mysql依赖3.3 application.yaml文件中增加mysql数据库配置:3.4 创建定时器3.5 启动…...

Flutter鸿蒙next 实现长按录音按钮及动画特效

在 Flutter 中实现长按录音按钮并且添加动画特效&#xff0c;是一个有趣且实用的功能。本文将通过实现一个具有动画效果的长按录音按钮&#xff0c;带领你一步步了解如何使用 Flutter 完成这个任务&#xff0c;并解释每一部分的实现。 一、功能需求 我们需要一个按钮&#xf…...

【计网】实现reactor反应堆模型 --- 框架搭建

没有一颗星&#xff0c; 会因为追求梦想而受伤&#xff0c; 当你真心渴望某样东西时&#xff0c; 整个宇宙都会来帮忙。 --- 保罗・戈埃罗 《牧羊少年奇幻之旅》--- 实现Reactor反应堆模型 1 前言2 框架搭建3 准备工作4 Reactor类的设计5 Connection连接接口6 回调方法 1 …...

力扣中等难度热题——长度为K的子数组的能量值

目录 题目链接&#xff1a;3255. 长度为 K 的子数组的能量值 II - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;通过连续上升的长度判断 Java写法&#xff1a; C写法&#xff1a; 相比与Java写法的差别 运行时间 时间复杂…...

JSON格式

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人和机器阅读和解析。它基于JavaScript的对象表示法&#xff0c;但被广泛用于多种编程语言。 JSON中的数据类型 字符串&#xff08;String&#xff09;&#xff1a;用双引…...

O-RAN前传Spilt Option 7-2x

Spilt Option 7-2x 下行比特处理上行比特处理相关文章&#xff1a; Open Fronthaul wrt ORAN 联盟被称为下层拆分(LLS)&#xff0c;其目标是提高电信市场的灵活性和竞争力。下层拆分是指无线电单元(RU) 和分布式单元(DU) 之间的拆分。 O-RAN前传接口可以在 eCPRI 上传输。eCPR…...

【GeoJSON在线编辑平台】(2)吸附+删除+挖孔+扩展

前言 在上一篇的基础上继续开发&#xff0c;补充上吸附功能、删除矢量、挖孔功能。 实现 1. 吸附 参考官方案例&#xff1a;Snap Interaction 2. 删除 通过 removeFeature 直接移除选中的要素。 3. 挖孔 首先是引入 Turf.js &#xff0c;然后通过 mask 方法来实现挖孔的…...

确定图像的熵和各向异性 Halcon entropy_gray 解析

1、图像的熵 1.1 介绍 图像熵&#xff08;image entropy&#xff09;是图像“繁忙”程度的估计值&#xff0c;它表示为图像灰度级集合的比特平均数&#xff0c;单位比特/像素&#xff0c;也描述了图像信源的平均信息量。熵指的是体系的混乱程度&#xff0c;对于图像而言&#…...

大数据-214 数据挖掘 机器学习理论 - KMeans Python 实现 算法验证 sklearn n_clusters labels

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

算法通关(3) -- kmp算法

KMP算法的原理 从题目引出 有两个字符串s1和s2,判断s1字符串是否包含s2字符串&#xff0c;如果包含返回s1包含s2的最左开头位置&#xff0c;不包含返回-1&#xff0c;如果是按照暴力的方法去匹配&#xff0c;以s1的每个字符作为开头&#xff0c;用s2的整体去匹配&#xff0c;…...

5G网卡network connection: disconnected

日志 5G流程中没有报任何错误&#xff0c;但是重新拿地址了&#xff0c;感觉像是驱动层连接断开了,dmesg中日志如下&#xff1a; [ 1526.558377] ippassthrough:set [ ip10.108.40.47 mask27 ip_net10.108.40.32 router10.108.40.33 dns221.12.1.227 221.12.33.227] br-lan […...

微积分复习笔记 Calculus Volume 1 - 4.9 Newton’s Method

4.9 Newton’s Method - Calculus Volume 1 | OpenStax...

Flutter自定义矩形进度条实现详解

在Flutter应用开发中&#xff0c;进度条是一个常见的UI组件&#xff0c;用于展示任务的完成进度。本文将详细介绍如何实现一个支持动画效果的自定义矩形进度条。 功能特点 支持圆角矩形外观平滑的动画过渡效果可自定义渐变色可配置边框宽度和颜色支持进度更新动画 实现原理 …...

如何设置 TORCH_CUDA_ARCH_LIST 环境变量以优化 PyTorch 性能

引言 在深度学习领域&#xff0c;PyTorch 是一个广泛使用的框架&#xff0c;它允许开发者高效地构建和训练模型。为了充分利用你的 GPU 硬件&#xff0c;正确设置 TORCH_CUDA_ARCH_LIST 环境变量至关重要。这个变量告诉 PyTorch 在构建过程中应该针对哪些 CUDA 架构版本进行优…...

CSS的三个重点

目录 1.盒模型 (Box Model)2.位置 (position)3.布局 (Layout)4.低代码中的这些概念 在学习CSS时&#xff0c;有三个概念需要重点理解&#xff0c;分别是盒模型、定位、布局 1.盒模型 (Box Model) 定义&#xff1a; CSS 盒模型是指每个 HTML 元素在页面上被视为一个矩形盒子。…...

【笔记】前后端互通中前端登录无响应

后来的前情提要 &#xff1a; 后端的ip地址在本地测试阶段应该设置为localhost 前端中写cors的配置 后端也要写cors的配置 且两者的url都要为localhost 前端写的baseUrl是指定对应的后端的ip地址以及端口号 很重要 在本地时后端的IP的地址也必须为本地的 F12的网页报错是&a…...

AI引领PPT创作:迈向“免费”时代的新篇章?

AI引领PPT创作&#xff1a;迈向“免费”时代的新篇章&#xff1f; 在信息爆炸的时代&#xff0c;演示文稿&#xff08;PPT&#xff09;作为传递信息和展示观点的重要工具&#xff0c;其制作效率和质量直接关系到演讲者的信息传递效果。随着人工智能&#xff08;AI&#xff09;…...

HTB:Perfection[WriteUP]

目录 连接至HTB服务器并启动靶机 1.What version of OpenSSH is running? 使用nmap对靶机TCP端口进行开放扫描 2.What programming language is the web application written in? 使用浏览器访问靶机80端口页面&#xff0c;并通过Wappalyzer查看页面脚本语言 3.Which e…...

鸿蒙next打包流程

目录 下载团结引擎 添加开源鸿蒙打包支持 打包报错 路径问题 安装DevEcoStudio 可以在DevEcoStudio进行打包hap和app 包结构 没法直接用previewer运行 真机运行和测试需要配置签名,DevEcoStudio可以自动配置, 模拟器安装hap提示报错 安装成功,但无法打开 团结1.3版本新增工具…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...