JavaScript接下来的小项目

2024-09-06 06:44
文章标签 java 项目 script 接下来

本文主要是介绍JavaScript接下来的小项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

● 接下来,我们将学习如下所示的一个小项目,这个项目是一个地图的项目,我们可以在地图上标记一些我们运动的位置进行记录,并且浏览器在本地会帮我们记录他们,其他一些功能后面慢慢阐述并实现
在这里插入图片描述

启动代码

JS代码

'use strict';// prettier-ignore
const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];const form = document.querySelector('.form');
const containerWorkouts = document.querySelector('.workouts');
const inputType = document.querySelector('.form__input--type');
const inputDistance = document.querySelector('.form__input--distance');
const inputDuration = document.querySelector('.form__input--duration');
const inputCadence = document.querySelector('.form__input--cadence');
const inputElevation = document.querySelector('.form__input--elevation');

CSS代码

:root {--color-brand--1: #ffb545;--color-brand--2: #00c46a;--color-dark--1: #2d3439;--color-dark--2: #42484d;--color-light--1: #aaa;--color-light--2: #ececec;--color-light--3: rgb(214, 222, 224);
}* {margin: 0;padding: 0;box-sizing: inherit;
}html {font-size: 62.5%;box-sizing: border-box;
}body {font-family: 'Manrope', sans-serif;color: var(--color-light--2);font-weight: 400;line-height: 1.6;height: 100vh;overscroll-behavior-y: none;background-color: #fff;padding: 2.5rem;display: flex;
}/* GENERAL */
a:link,
a:visited {color: var(--color-brand--1);
}/* SIDEBAR */
.sidebar {flex-basis: 50rem;background-color: var(--color-dark--1);padding: 3rem 5rem 4rem 5rem;display: flex;flex-direction: column;
}.logo {height: 5.2rem;align-self: center;margin-bottom: 4rem;
}.workouts {list-style: none;height: 77vh;overflow-y: scroll;overflow-x: hidden;
}.workouts::-webkit-scrollbar {width: 0;
}.workout {background-color: var(--color-dark--2);border-radius: 5px;padding: 1.5rem 2.25rem;margin-bottom: 1.75rem;cursor: pointer;display: grid;grid-template-columns: 1fr 1fr 1fr 1fr;gap: 0.75rem 1.5rem;
}
.workout--running {border-left: 5px solid var(--color-brand--2);
}
.workout--cycling {border-left: 5px solid var(--color-brand--1);
}.workout__title {font-size: 1.7rem;font-weight: 600;grid-column: 1 / -1;
}.workout__details {display: flex;align-items: baseline;
}.workout__icon {font-size: 1.8rem;margin-right: 0.2rem;height: 0.28rem;
}.workout__value {font-size: 1.5rem;margin-right: 0.5rem;
}.workout__unit {font-size: 1.1rem;color: var(--color-light--1);text-transform: uppercase;font-weight: 800;
}.form {background-color: var(--color-dark--2);border-radius: 5px;padding: 1.5rem 2.75rem;margin-bottom: 1.75rem;display: grid;grid-template-columns: 1fr 1fr;gap: 0.5rem 2.5rem;/* Match height and activity boxes */height: 9.25rem;transition: all 0.5s, transform 1ms;
}.form.hidden {transform: translateY(-30rem);height: 0;padding: 0 2.25rem;margin-bottom: 0;opacity: 0;
}.form__row {display: flex;align-items: center;
}.form__row--hidden {display: none;
}.form__label {flex: 0 0 50%;font-size: 1.5rem;font-weight: 600;
}.form__input {width: 100%;padding: 0.3rem 1.1rem;font-family: inherit;font-size: 1.4rem;border: none;border-radius: 3px;background-color: var(--color-light--3);transition: all 0.2s;
}.form__input:focus {outline: none;background-color: #fff;
}.form__btn {display: none;
}.copyright {margin-top: auto;font-size: 1.3rem;text-align: center;color: var(--color-light--1);
}.twitter-link:link,
.twitter-link:visited {color: var(--color-light--1);transition: all 0.2s;
}.twitter-link:hover,
.twitter-link:active {color: var(--color-light--2);
}/* MAP */
#map {flex: 1;height: 100%;background-color: var(--color-light--1);
}/* Popup width is defined in JS using options */
.leaflet-popup .leaflet-popup-content-wrapper {background-color: var(--color-dark--1);color: var(--color-light--2);border-radius: 5px;padding-right: 0.6rem;
}.leaflet-popup .leaflet-popup-content {font-size: 1.5rem;
}.leaflet-popup .leaflet-popup-tip {background-color: var(--color-dark--1);
}.running-popup .leaflet-popup-content-wrapper {border-left: 5px solid var(--color-brand--2);
}
.cycling-popup .leaflet-popup-content-wrapper {border-left: 5px solid var(--color-brand--1);
}

HTML代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><link rel="shortcut icon" type="image/png" href="/icon.png" /><linkhref="https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&display=swap"rel="stylesheet"/><link rel="stylesheet" href="style.css" /><script defer src="script.js"></script><title>mapty // Map your workouts</title></head><body><div class="sidebar"><img src="logo.png" alt="Logo" class="logo" /><ul class="workouts"><form class="form hidden"><div class="form__row"><label class="form__label">Type</label><select class="form__input form__input--type"><option value="running">Running</option><option value="cycling">Cycling</option></select></div><div class="form__row"><label class="form__label">Distance</label><input class="form__input form__input--distance" placeholder="km" /></div><div class="form__row"><label class="form__label">Duration</label><inputclass="form__input form__input--duration"placeholder="min"/></div><div class="form__row"><label class="form__label">Cadence</label><inputclass="form__input form__input--cadence"placeholder="step/min"/></div><div class="form__row form__row--hidden"><label class="form__label">Elev Gain</label><inputclass="form__input form__input--elevation"placeholder="meters"/></div><button class="form__btn">OK</button></form><!-- <li class="workout workout--running" data-id="1234567890"><h2 class="workout__title">Running on April 14</h2><div class="workout__details"><span class="workout__icon">🏃‍♂️</span><span class="workout__value">5.2</span><span class="workout__unit">km</span></div><div class="workout__details"><span class="workout__icon">⏱</span><span class="workout__value">24</span><span class="workout__unit">min</span></div><div class="workout__details"><span class="workout__icon">⚡️</span><span class="workout__value">4.6</span><span class="workout__unit">min/km</span></div><div class="workout__details"><span class="workout__icon">🦶🏼</span><span class="workout__value">178</span><span class="workout__unit">spm</span></div></li><li class="workout workout--cycling" data-id="1234567891"><h2 class="workout__title">Cycling on April 5</h2><div class="workout__details"><span class="workout__icon">🚴‍♀️</span><span class="workout__value">27</span><span class="workout__unit">km</span></div><div class="workout__details"><span class="workout__icon">⏱</span><span class="workout__value">95</span><span class="workout__unit">min</span></div><div class="workout__details"><span class="workout__icon">⚡️</span><span class="workout__value">16</span><span class="workout__unit">km/h</span></div><div class="workout__details"><span class="workout__icon">⛰</span><span class="workout__value">223</span><span class="workout__unit">m</span></div></li> --></ul><p class="copyright">&copy; Copyright by<aclass="twitter-link"target="_blank"href="https://twitter.com/jonasschmedtman">Jonas Schmedtmann</a>. Use for learning or your portfolio. Don't use to teach. Don't claimas your own.</p></div><div id="map"></div></body>
</html>

好了,下篇文章和大家一起来学习这个小小的项目吧!

这篇关于JavaScript接下来的小项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141295

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件