Web网页制作之JavaScript的应用

 ---------------📡🔍K学啦 更多学习资料📕 免费获取---------------


实现的功能:1.通过登录界面跳转至主页面,用户名统一为“admin”,密码统一为“admin123”,密码可显示或隐藏输入错误有提示信息。可通过enter键,进行登录跳转。

                      2.登录界面的登录框为模态框,可通过鼠标拖拽移动。

                      3.主页面中包含横向或竖向导航菜单,可通过鼠标事件使选中菜单变色,并调出二级菜单。主页面内可实时显示当前时间;主页面可修改主页背景颜色或背景图片;主页面内使用轮播图滚动播放信息;在主页中实现tab栏的切换,不跳转页面控制内容的呈现。固定主页面导航栏。

目录

一、网页的基本结构 

二、登录页面的功能实现

三、主页的功能实现 

四、整体效果 

五、源码获取 


一、网页的基本结构 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="    " content="      ">
    <link rel="icon" href="../img/logo.jpg">-----//网页logo
    <title>猿来如此</title>--------//网页标题
    <style> ...
     ............//位置,大小,颜色,形状
    </style>
</head>-------------//头部
<body>-----------//主体
     <header>
        <nav class="    ">------//导航栏菜单
            <ul class="    ">
                <li class="menu-item" onclick="showSubMenu('menu1')">微信小程序</li>
                <li class="menu-item" onclick="showSubMenu('menu2')">搜</li>
                <li class="menu-item" onclick="showSubMenu('menu3')">K学啦</li>
            </ul>
            <div id="menu1" class="sub-menu">------//子菜单
                <a href="#">小程序</a>
                <a href="#">K学啦</a>
            </div>
            <div id="menu2" class="sub-menu">
                <a href="#">私信</a>
                <a href="#">评论区</a>
            </div>
            <div id="menu3" class="sub-menu">
                <a href="#">注销</a>
                <a href="#">退出</a>
            </div>
        </nav>
    </header>
    <div class=" " id=" "> ...
      .........
    </div>
    <div class=" " id=" "> ...
      .........
    </div>
    <script> ...
      ...........//js部分
    </script>
    <footer class=" ">
        <p>©版权信息</p>
    </footer>
</body>
</html>

二、登录页面的功能实现

<body>
   <div class="overlay" id="overlay">
       <div class="modal" id="modal">
            <div class="modal-header" id="modalHeader">
                <h2>Login</h2> ------//二级标题
            </div>
            <div class="modal-content">
                <input type="text" id="username" placeholder="Username" required>
                <input type="password" id="password" placeholder="Password" required>
                <button onclick="login()">登录</button>---//登录事件
                <input type="checkbox" id="showPassword" onclick="togglePassword()">展示密码
                <div class="error-message" id="errorMessage">用户名或密码不正确</div>
            </div>
       </div>
    </div>
    <div class="overlay" id="overlay">
        <div class="modal" id="modal">
            <div class="modal-header" id="modalHeader">
                <h2>Login</h2>
            </div>
            <div class="modal-content">
                <input type="text" id="username" placeholder="Username" required>
                <input type="password" id="password" placeholder="Password" required>
                <button onclick="login()">登录</button>
                <input type="checkbox" id="showPassword" onclick="togglePassword()">展示密码
                <div class="error-message" id="errorMessage">用户名或密码不正确</div>
            </div>
        </div>
    </div>

    <script>
        const username = 'admin';    ------固定用户名
        const password = 'admin123'; ------固定密码

        document.getElementById('password').addEventListener('keypress', function(e) {
            if (e.key === 'Enter') {
                login();
            }
        });  ----------------Enter触发登录事件

        function login() {
            const userInputUsername = document.getElementById('username').value;
            const userInputPassword = document.getElementById('password').value;

            if (userInputUsername === username && userInputPassword === password) {
                window.location.href = 'main.html'; ------//用户输入用户名密码和固定的相等时跳转到main.html
            } else {
                document.getElementById('errorMessage').style.display = 'block';
            }
        }   ---------------//否则触发errorMessage事件报错

        function togglePassword() {
            const passwordField = document.getElementById('password');
            const type = passwordField.getAttribute('type') === 'password' ? 'text' : 'password';
            passwordField.setAttribute('type', type);
        } ------------//展示密码功能

        //拖拽功能
        let modal = document.getElementById('modal');
        let modalHeader = document.getElementById('modalHeader');
        let isDragging = false;
        let offsetX, offsetY;

        modalHeader.onmousedown = dragMouseDown;

        function dragMouseDown(e) {
            isDragging = true;
            modal.style.cursor = 'grabbing';
            offsetX = e.clientX - modal.getBoundingClientRect().left;
            offsetY = e.clientY - modal.getBoundingClientRect().top;
            document.onmouseup = closeDragElement;
            document.onmousemove = elementDrag;
        }

        function elementDrag(e) {
            if (isDragging) {
                modal.style.left = `${e.clientX - offsetX}px`;
                modal.style.top = `${e.clientY - offsetY}px`;
            }
        }

        function closeDragElement() {
            isDragging = false;
            modal.style.cursor = 'grab';
            document.onmouseup = null;
            document.onmousemove = null;
        }
        document.getElementById('overlay').style.display = 'flex';
    </script>
</body>

三、主页的功能实现 

 ①主页面中包含横向或竖向导航菜单,可通过鼠标事件使选中菜单变色,并调出二级菜单,并显示当前时间。

HTML代码: 

<header>
        <nav class="navbar">
            <ul class="menu">
                <li class="menu-item" onclick="showSubMenu('menu1')">微信</li>
                <li class="menu-item" onclick="showSubMenu('menu2')">源码获取</li>
                <li class="menu-item" onclick="showSubMenu('menu3')">退出</li>
            </ul>
            <div id="menu1" class="sub-menu">
                <a href="#">小程序</a>------//如,href="1.html",跳转到1.html
                <a href="#">K学啦</a>
            </div>
            <div id="menu2" class="sub-menu">
                <a href="#">私信</a>
                <a href="#">评论区</a>
            </div>
            <div id="menu3" class="sub-menu">
                <a href="#">注销</a>
                <a href="#">退出</a>
            </div>
        </nav>
        <div class="time-display" id="timeDisplay"></div>
    </header>

JavaScript代码: 

document.addEventListener('DOMContentLoaded', () => {
    const timeDisplay = document.getElementById('timeDisplay');
    setInterval(() => {
        const now = new Date();
        timeDisplay.textContent = now.toLocaleTimeString();
    }, 1000);

    const carouselImages = document.querySelector('.carousel-images');
    let carouselIndex = 0;
    const images = document.querySelectorAll('.carousel-images img');
    const totalImages = images.length;

    setInterval(() => {
        carouselIndex = (carouselIndex + 1) % totalImages;
        const offset = -carouselIndex * 100 + '%';
        carouselImages.style.transform = `translateX(${offset})`;
    }, 3000);
});---------//显示当时时间

function showSubMenu(menuId) {
    const menus = document.querySelectorAll('.sub-menu');
    menus.forEach(menu => menu.style.display = 'none');
    document.getElementById(menuId).style.display = 'block'; -----//鼠标活动变色
    const menuItems = document.querySelectorAll('.menu-item');
    menuItems.forEach(item => item.classList.remove('active'));
    document.querySelector(`.menu-item[onclick="showSubMenu('${menuId}')"]`).classList.add('active');
}-------//活动菜单栏

 

 ②主页面可修改主页背景颜色或背景图片;主页面内使用轮播图滚动播放信息。

HTML代码: 

    <div class="background-controls">
        <label for="bgColor">背景颜色:</label>
        <input type="color" id="bgColor" onchange="changeBackgroundColor(this.value)">
        <label for="bgImage">背景图片:</label>
        <input type="file" id="bgImage" accept="image/*" onchange="changeBackgroundImage(this.files[0])">------//选择本地图片
    </div>
    <div class="    ">-------//轮播图
        <div class="    ">
            <img src="1.jpg" alt="Image 1">
            <img src="2.png" alt="Image 2">
            <img src="5.jpg" alt="Image 3">
        </div>
    </div>

JavaScript代码: 

function changeBackgroundColor(color) {
    document.body.style.backgroundColor = color;
}

function changeBackgroundImage(file) {
    const reader = new FileReader();
    reader.onload = function(e) {
        document.body.style.backgroundImage = `url(${e.target.result})`;
        document.body.style.backgroundSize = 'cover';
        document.body.style.backgroundPosition = 'center';
    };
    reader.readAsDataURL(file);
}
修改背景颜色

 

 

修改背景图片

 ③在主页中实现tab栏的切换,不跳转页面控制内容的呈现。固定主页面导航栏。

HTML代码:

<div class="tabs">
        <div class="tab-buttons">
            <button class="tab-button" onclick="showTab('tab1')">C语言</button>
            <button class="tab-button" onclick="showTab('tab2')">python语言</button>
            <button class="tab-button" onclick="showTab('tab3')">JAVA语言</button>
        </div>
        <div id="tab1" class="tab-content">
            <p>C语言是一种较早的程序设计语言,诞生于1972年的贝尔实验室。
                1972 年,Dennis Ritchie 设计了C语言,它继承了B语言的许多思想,并加入了数据类型的概念及其他特性。
                 尽管C 语言是与 UNIX 操作系统一起被开发出来的,但它不只支持UNIX。C是一种通用(广泛可用)的编程语言。</p>
        </div>
        <div id="tab2" class="tab-content">
            <p>Python由荷兰国家数学与计算机科学研究中心的吉多·范罗苏姆于1990年代初设计,
                作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面
                向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,
                随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。</p>
        </div>
        <div id="tab3" class="tab-content">
            <p>Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难
                以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面
                向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。</p>
        </div>
</div>

JavaScript代码:

function showTab(tabId) {
    const tabs = document.querySelectorAll('.tab-content');
    tabs.forEach(tab => tab.classList.remove('active')); // 移除所有标签的 'active' 类
    document.getElementById(tabId).classList.add('active'); // 为指定的标签添加 'active' 类
}

四、整体效果 

五、源码获取 

  看到这里你是否受益了呢?你的支持就是我创作的动力,点赞+收藏+关注,学习不迷路,评论区留下你的疑问,可私信获取源码。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Markdown编辑器——Typora(Picgo+Github图床)

Markdown编辑器——Typora&#xff08;PicgoGithub图床&#xff09; 文章目录 Markdown编辑器——Typora&#xff08;PicgoGithub图床&#xff09;安装Typora安装PicGoPicGo软件下载PicGo的npm版本下载 GitHub图床配置PicGo配置PicGo的软件配置PicGo的npm版本信息配置 配置Typo…

Unity 3D游戏开发从入门进阶到高级

本文精心整理了Unity3D游戏开发相关的学习资料&#xff0c;涵盖入门、进阶、性能优化、面试和书籍等多个维度&#xff0c;旨在为Unity开发者提供全方位、高含金量的学习指南.欢迎收藏。 学习社区 Unity3D开发者 这是一个专注于Unity引擎的开发者社区&#xff0c;汇聚了众多Un…

Python 21:Debug

1. Debug的作用 当程序的预期结果和实际结果不一致时&#xff0c;可以用Debug模式进行调试来定位问题的位置。 2. Debug使用 1&#xff09;设置断点 点击行号&#xff0c;出现”断点“ 2&#xff09;执行Debug 点击Debug 或者右键&#xff0c;点击debug进入debug模式 3.Debu…

(CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑&#xff1a;**在发布的过程中不影响用户的使用&#xff0c;系统不会因发布而暂停对外服务&#xff0c;不会造成用户短暂性无法访问&#xff1b; **什么叫灰度&#xff1a;**发布后让部分用户使用新版本&#xff0c;其它用户使用旧版本&am…

强化学习入门谈

之前我们见识到很多机器学习大展手脚的任务场景了&#xff0c;但是机器学习依旧有很多软肋。 回忆一下&#xff0c;我们之前做的机器学习&#xff08;深度学习&#xff09;策略基本都是类似于"supervised learning"的方法&#xff0c;比如你想用CNN实现一个classifi…

colnames看似简单,却能优化数据处理流程

引言 在数据处理和分析中&#xff0c;变量名称是至关重要的&#xff0c;它们决定了数据的可读性和操作的简便性。在R语言中&#xff0c;colnames 函数以其简单的语法设计&#xff0c;提供了高效管理数据框列名的能力&#xff0c;尤其是在复杂的爬虫任务中显得尤为重要。本篇文…

【分布式】Hadoop完全分布式的搭建(零基础)

Hadoop完全分布式的搭建 环境准备&#xff1a; &#xff08;1&#xff09;VMware Workstation Pro17&#xff08;其他也可&#xff09; &#xff08;2&#xff09;Centos7 &#xff08;3&#xff09;FinalShell &#xff08;一&#xff09;模型机配置 0****&#xff09;安…

ArcGIS中怎么把数据提取到指定范围(裁剪、掩膜提取)

最近&#xff0c;经常能收到怎么把数据提取到指定范围、栅格数据怎么裁剪、矢量数据怎么裁剪、栅格数据怎么掩膜提取的咨询。 下面是我对这个问题的解决思路&#xff1a; 对于矢量数据&#xff1a; ①首先把数据加载进来 ②软件界面上面的工具栏找到→地理处理→裁剪&#x…

intra-mart环境搭建笔记

一、前言 最近在做intra-mart项目&#xff0c;网上这些笔记比较少&#xff0c;在此做一下笔记。 intra-mart是由日本intra-mart公司开发和销售的工作流平台&#xff0c;国内确实不怎么用&#xff0c;日本企业用的多些&#xff0c;面试时会问有没有intra-mart经验。 这个自学…

智能型电瓶车充电桩在老居民区充电站中的应用优势

摘要 随着电瓶车数量的快速增长&#xff0c;小区内的电瓶车充电需求日益增加&#xff0c;但传统充电方式存在诸多安全隐患。电瓶车智能充电桩作为一种新型充电解决方案&#xff0c;能够有效解决充电难题&#xff0c;并提升充电安全性和便捷性。本文以ACX10A型电瓶车充电桩为…

生产看板真的有用吗?

​看板&#xff0c;对于从事制造行业的人员来说&#xff0c;这并不陌生。但是对于看板起到的作用&#xff0c;那可就是众说纷纭&#xff0c;有人说&#xff0c;看板是领导的“面子工程”&#xff0c;是混淆上级视察的工具&#xff1b;也有人说&#xff0c;看板真切地帮助车间提…

刷服务器固件

猫眼淘票票 大麦 一 H3C通用IP 注:算力服务器不需要存储 二 刷服务器固件 1 登录固定IP地址 2 升级BMC版本 注 虽然IP不一致但是步骤是一致的 3 此时服务器会出现断网现象&#xff0c;若不断网等上三分钟ping一下 4 重新登录 5 断电拔电源线重新登录查看是否登录成功

机器学习算法在推荐系统中的应用:从数据预处理到模型部署实战指南

机器学习算法在推荐系统中的应用&#xff1a;从数据预处理到模型部署实战指南 介绍 在当今信息爆炸的时代&#xff0c;推荐系统扮演了越来越重要的角色&#xff0c;它可以帮助用户发现和获取个性化的信息、产品或服务。而推荐系统中的机器学习算法则是其核心引擎&#xff0c;能…

上门按摩系统架构与功能分析

一、系统架构 服务端用Java语言&#xff08;最低JDK1.8&#xff0c;支持JDK11以及JDK17&#xff09;、MySQL数据库&#xff08;标配5.7版本&#xff0c;支持MySQL8&#xff09;&#xff0c;Mybatis ORM框架&#xff0c;Redis缓存&#xff0c;nginx代理&#xff0c;前端用uniap…

使用mne对运动想象数据bciIV进行预处理

需要的库 mne numpy scipy scikit-learn pip install mne numpy scipy scikit-learn 数据下载 对Data sets 2a ‹4-class motor imagery› 四分类的运动想象来进行mne的处理。 BCI Competition IV 数据的说明如下 [22 EEG channels (0.5-100Hz; notch filtered), 3 EOG chann…

设计模式 行为型 策略模式(Strategy Pattern)与 常见技术框架应用 解析

策略模式&#xff08;Strategy Pattern&#xff09;核心思想是将算法的实现从使用该算法的类中分离出来&#xff0c;作为独立的对象&#xff0c;通过接口来定义算法家族&#xff0c;这样就可以很容易地改变或扩展算法。通过这种方式&#xff0c;可以避免在客户端代码中使用大量…

配置管理工具和k8s功能重叠部分的优势比较

通过自动化配置管理工具&#xff08;如 Ansible、Puppet、Chef&#xff09;和应用内管理机制&#xff0c;也可以实现自动部署、扩缩容、负载均衡和故障恢复等功能。Kubernetes&#xff08;K8s&#xff09;在这些方面具有哪些独特的优势呢&#xff0c;尤其是在云原生环境和大规模…

OpenHarmony AVScreenCaptureRecorder录屏开发指导

一、简介 OpenHarmony 5.0新增了AVScreenCaptureRecorder ArkTs API。用户可以调用录屏AVScreenCaptureRecorder API录制屏幕&#xff0c;采集音频源数据&#xff0c;获取封装后的音视频文件&#xff0c;然后通过文件的形式流转到其他模块进行播放或处理&#xff0c;用于以文件…

CSS Grid 布局示例(基本布局+代码属性描述)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>CSS Grid 布局示例</title><style>.gri…

爬虫学习案例3

爬取美女图片 优美图库地址 一页图片 安装依赖库文件 pip install selenium requests beautifulsoup4import time import requests import random from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.service import Service fr…