html代码

Exchange Rate Calculator

Exchange Rate Calculator

Choose the currency and the amounts to get the exchange rate

AED

ARS

AUD

BGN

BRL

BSD

CAD

CHF

CLP

CNY

COP

CZK

DKK

DOP

EGP

EUR

FJD

GBP

GTQ

HKD

HRK

HUF

IDR

ILS

INR

ISK

JPY

KRW

KZT

MXN

MYR

NOK

NZD

PAB

PEN

PHP

PKR

PLN

PYG

RON

RUB

SAR

SEK

SGD

THB

TRY

TWD

UAH

USD

UYU

VND

ZAR

Swap

AED

ARS

AUD

BGN

BRL

BSD

CAD

CHF

CLP

CNY

COP

CZK

DKK

DOP

EGP

EUR

FJD

GBP

GTQ

HKD

HRK

HUF

IDR

ILS

INR

ISK

JPY

KRW

KZT

MXN

MYR

NOK

NZD

PAB

PEN

PHP

PKR

PLN

PYG

RON

RUB

SAR

SEK

SGD

THB

TRY

TWD

UAH

USD

UYU

VND

ZAR

css代码

:root {

--primary-color: #5fbaa7;

}

*{

box-sizing: border-box;

}

body {

background-color: #f4f4f4;

font-family: Arial, Helvetica, sans-serif;

display: flex;

flex-direction: column;

align-items: center;

justify-content: center;

height: 100vh;

margin: 0;

padding: 20px;

}

h1 {

color: var(--primary-color);

}

p{

text-align: center;

}

.btn {

color: #fff;

background: var(--primary-color);

cursor: pointer;

border-radius: 5px;

font-size: 12px;

padding: 5px 12px;

}

.money-img {

width: 150px;

}

.currency {

padding: 40px 0;

display: flex;

align-items: center;

justify-content: space-between;

}

.currency select {

padding: 10px 20px 10px 10px;

-moz-appearance: none;

-webkit-appearance: none;

appearance: none;

border: 1px solid #dedede;

font-size: 16px;

background: transparent;

background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229 2.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%20000002%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');

background-position: right 10px top 50%, 0, 0;

background-size: 12px auto, 100%;

background-repeat: no-repeat;

}

.currency input {

border: 0;

background: transparent;

font-size: 30px;

text-align: right;

}

.swap-rate-container {

display: flex;

align-items: center;

justify-content: space-between;

}

.rate {

color: var(--primary-color);

font-size: 14px;

padding: 0 10px;

}

select:focus,

input:focus,

button:focus {

outline: 0;

}

@media (max-width: 600px) {

.currency input {

width: 200px;

}

}

JavaScript代码

// 获取货币1对象

let currencyEl_one = document.getElementById("currency-one");

// 获取货币2对象

let currencyEl_two = document.getElementById("currency-two");

// 获取货币1对应的汇率对象

let amountEl_one = document.getElementById("amount-one");

// 获取货币2对应的汇率对象

let amountEl_two = document.getElementById("amount-two");

// 获取提示框对应的对象

let rateEl = document.getElementById("rate");

// 检查初始状态下 是否需要换算汇率

getData();

// 货币2发生变化时 触发的事件

currencyEl_two.onchange = getData;

// 货币1发生变化时 触发的事件

currencyEl_one.onchange = getData;

// 获取按钮 货币1和货币2是否都有值

let btn = document.getElementById("swap");

// 点击交换按钮时 触发的事件

btn.onclick = function() {

// console.log("!!!");

let currency_one = currencyEl_one.value;

let currency_two = currencyEl_two.value;

// 定义临时变量

let temp = currency_one;

// 交换货币1和货币2的value

currencyEl_one.value = currency_two;

currencyEl_two.value = temp;

// 并且交换货币1和货币2对应的汇率

currency_one = currency_two;

currency_two = temp;

fetch(`https://api.exchangerate-api.com/v4/latest/${currency_one}`)

.then(res => res.json())

.then(data => {

const rate = data.rates[currency_two];

rateEl.innerText = `1 ${currency_one} = ${rate} ${currency_two}`;

amountEl_two.value = (amountEl_one.value * rate).toFixed(2);

});

};

// 得到汇率

function getData() {

let currency_one = currencyEl_one.value;

let currency_two = currencyEl_two.value;

fetch(`https://api.exchangerate-api.com/v4/latest/${currency_one}`)

.then(res => res.json())

.then(data => {

const rate = data.rates[currency_two];

rateEl.innerText = `1 ${currency_one} = ${rate} ${currency_two}`;

amountEl_two.value = (amountEl_one.value * rate).toFixed(2);

});

}

运行效果

java 汇率换算_原生JS实现简单的汇率转换问题相关推荐

  1. 深圳java培训:使用原生JS重构简单的音乐播放器

    深圳java培训:使用原生JS重构简单的音乐播放器 上次,我们使用Jquery开发了一款简单的音乐播放器(如下图), 后来学生希望能够用原生的JS重构一次, 那么,下面就来看看如何使用原生的JS重构吧 ...

  2. css画钟表_利用css+原生js制作简单的钟表

    利用css+原生js制作简单的钟表.效果如下所示 实现该效果,分三大块:html.javascript.css html部分html部分比较简单,定义一个clock的div,内部有原点.时分秒针.日期 ...

  3. 根据id删除localstorage数据_原生js利用localstorage实现简易TODO list应用

    前言:小生不才,只懂得一些皮毛,我努力以最简单的语言将心中的想法表述出来,让更多人能够很轻松的弄明白.文章里面有不足之处望各位大牛指出,使得后面的文章能够朝着更好的方向发展.另外,大家记得点赞哟! 欢 ...

  4. js事件里面套事件怎么不管用_原生js利用localstorage实现简易TODO list应用

    前言:小生不才,只懂得一些皮毛,我努力以最简单的语言将心中的想法表述出来,让更多人能够很轻松的弄明白.文章里面有不足之处望各位大牛指出,使得后面的文章能够朝着更好的方向发展.另外,大家记得点赞哟! 欢 ...

  5. js 控制鼠标_原生js实现改变视频播放速率

    前言:前几天考研成绩刚刚出来,有人欢喜有人悲,不管结果怎么样,只要努力过,就不存在遗憾一说.大家都知道考研复习的时候会有大量的时间用来看教学视频,就比如说"张宇高数"等等.考研复习 ...

  6. 原生JS实现简单放大镜效果

    [前言] 本文介绍下原生JS实现简单图片放大镜效果 [主体] 时间问题,直接上源码 <!DOCTYPE html> <html> <head><meta ch ...

  7. java实现选项卡定时轮播_原生js面向对象编程-选项卡(自动轮播)

    原生js面向对象编程-选项卡(自动轮播) }#div1 input{color:#fff;width:100px;height:40px;background:darkseagreen;border: ...

  8. java循环购物车结算系统_原生JS实现购物车结算功能代码

    html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD ...

  9. java使用重绘实现拖动_原生JS使用Canvas实现拖拽式绘图功能

    一.实现的功能 1.基于oop思想构建,支持坐标点.线条(由坐标点组成,包含方向).多边形(由多个坐标点组成).圆形(包含圆心坐标点和半径)等实体 2.原生JavaScript实现,不依赖任何第三方j ...

  10. 微信通讯录java实现_原生JS实现微信通讯录

    最近工作当中再一次遇到要实现一个车辆列表,要求能够像微信通讯录一样,实现右侧滑动,点击功能,并且滑动过程中,能够有提示.原来用jquery实现过一次,为了精简代码,现在用原生的实现一次.想必工作中大家 ...

最新文章

  1. python3 调用字符串对应的函数
  2. java 方法不同_java同一个类不同方法间的同步
  3. 忘关烤箱了?我用 Python 和 OpenCV 来帮忙
  4. Struts2学习笔记(一)--入门常见配置
  5. linux单网卡多拨Adsl,秋明 | 边缘计算-使用多adsl账号做捆绑上网[单网卡多账号多拨]...
  6. esp32 io速度_乐鑫科技发布 ESP32-S3 芯片,精准聚焦 AIoT 市场
  7. 数据结构专题(二):2.2单链表与顺序表,求元素个数,取值与查找
  8. 新漏洞可导致西门子 PLCs 遭远程攻击
  9. php上搭建dvwa,使用phpstudy在windows上搭建DVWA
  10. 高颜值智能存储 华三魔术家M2无线云盘评测
  11. ORB-SLAM:一种通用的(全能的)精确的单目SLAM系统(ORB-SLAM论文翻译)
  12. excel2021 打印圆不圆
  13. apktool下载安装
  14. TCP/IP协议连接状态详解
  15. 评论式软文怎么写?学会这三招,让你轻松营造出客观的感觉
  16. Atitit.跨语言反射api 兼容性提升与增强 java c#。Net  php  js
  17. php仿站教程网,我想仿站,不知道选择哪个cms好?
  18. 分层,均质,稀薄燃烧
  19. 关于多普达手机上WIFI和GPRS的设置问题注意几点
  20. 《天才在左疯子在右》

热门文章

  1. n−皇后问题 (dfs)
  2. VMware虚拟机安装黑苹果
  3. (判断题)两台路由器之间转发的数据包一定不携带VLAN TAG?
  4. 如何使用gdb调试java虚拟机_Eclispe+qemu+gdb调试linux Kernel
  5. C#学习笔记:什么是哈希值
  6. python中if in是什么意思_python中的in是什么意思
  7. 小米笔记本安装系统 声卡驱动安装不上
  8. 服务器 支持sata硬盘,服务器SAS硬盘背板能插SATA硬盘吗?
  9. SQL之CASE WHEN用法详解
  10. Tensorboard启动时面对大量文件存在内存升高问题