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

相关文章

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代