原生JS打造互动架子鼓模拟应用

版权申诉
0 下载量 57 浏览量 更新于2024-10-14 收藏 917KB ZIP 举报
资源摘要信息:"在本资源中,我们将探讨如何使用原生JavaScript、HTML和CSS来模拟架子鼓的使用体验。通过这个项目,学习者可以深入理解JavaScript的基本概念和操作,包括DOM操作、事件处理等。此外,这个项目也有助于提高学习者对网页设计的理解,通过使用HTML和CSS来创建视觉效果和用户界面。 1. HTML与页面结构:在构建打鼓模拟器的过程中,首先需要设计页面结构。使用HTML来定义架子鼓的各个部分,如鼓面、踏板等,这些将作为交互的元素。例如,可以通过`<div>`标签来创建鼓面的可视化表示,并赋予它们唯一的ID或类名,以便于后续使用JavaScript进行操作。 2. CSS与样式设计:为了使打鼓模拟器看起来更逼真,我们需要使用CSS来添加样式。这可能包括模拟鼓面的质感、踏板的位置和大小以及整体的布局设计。CSS选择器的使用可以帮助我们精确地定位和控制页面上不同元素的样式。此外,通过CSS动画,还可以实现敲击鼓面时的视觉效果,如颜色变化、阴影效果等。 3. JavaScript与交互逻辑:核心部分是使用JavaScript来实现架子鼓的交互逻辑。通过为页面元素绑定事件监听器,模拟出打击鼓面时的响应。JavaScript代码将监听用户的点击事件,并根据用户点击的鼓面部分,播放相应的音频文件。例如,可以使用`audio`标签来加载鼓声的音频文件,并通过JavaScript控制播放。 4. DOM操作:在实现过程中,学习者将深入了解文档对象模型(DOM)的概念。通过JavaScript对DOM的操作,可以动态地添加、修改或移除页面元素。例如,当一个鼓面被点击后,可以通过JavaScript改变该元素的样式,或显示一个动画效果来模拟敲击动作。 5. 事件处理:项目中会涉及到事件监听和事件处理的知识点。学习者需要编写事件处理函数来响应用户的动作,如点击、触摸等。这不仅包括如何设置事件监听器,还包括如何在事件发生时执行正确的代码逻辑。 6. 项目实践与理解:通过构建一个完整的打鼓模拟器,学习者将把JavaScript的理论知识应用到实践中。这不仅有助于加深对原生JavaScript的理解,还能够提升解决实际问题的能力。此外,实践过程中可能会遇到的调试问题、兼容性问题和性能优化问题,都是对学习者综合能力的锻炼。 总结来说,利用原生JS和HTML/CSS模拟架子鼓是一个非常有教育意义的项目,它不仅能够帮助学习者掌握前端开发的基础知识,还能够通过模拟真实场景来加深对前端交互逻辑的理解。通过本资源的学习,初学者可以为未来的前端开发工作打下坚实的基础。"

#!/bin/bash day1=$(date +%Y%m%d) day2=$(date -d "yesterday" +%Y%m%d) cd /ftpdata/receive/eda_in/in_1851 gunzip *.gz mv 10000_ACCOUNT_BASE_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_account_base.dat mv 10000_ACCOUNT_MANAGER_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_account_manager.dat mv 10000_CONSOLE_USER_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_console_user.dat mv 10000_REPORT_CRM_MASTER_ORDER_CONFIG_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_report_crm_master_order_config.dat mv 10000_INNER_ORDER_ITEM_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_inner_order_item.dat mv 10000_REPORT_RESOURCE_SCORE_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_report_resource_score.dat mv 10000_REPORT_PAYMENT_PLAN_PREVIEW_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_report_payment_plan_preview.dat mv 10000_ORDERS_ITEM_DEVELOPMENT_DETAIL_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_orders_item_development_detail.dat mv 10000_REPORT_ONE_CORD_ONE_PERSON_MANAGER_LIST_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_1code1person_manager_list.dat mv 10000_CLOUD_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_cloud.dat mv 10000_REPORT_OPOE_CUSTOMER_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_report_opoe_customer.dat mv 10000_CLOUD_ACTIVE_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_Cloud_active.dat mv 10000_BUSI_ORDER_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_busi_order.dat mv 10000_BUSI_ORDER_ITEM_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_busi_order_item.dat mv 10000_REPORT_IAM_IDENTITY_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_iam_identity.dat exit 0 什么意思

2023-07-14 上传

保留原本功能优化以下代码import pandas as pd import numpy as np import matplotlib.pyplot as plt # 1.读取并查看数据 bike_day = pd.read_csv("C:/Users/15020/Desktop/26.bike_day.csv") print(bike_day.head(5)) # 前5行 print(bike_day.tail(2)) #后2行 #2.处理数据并导出到文件 bike_day_user = bike_day[['instant','dteday','yr', 'casual', 'registered']].dropna() bike_day_user.to_csv('bike_day_user.txt', sep=' ',index=False, header=False) #3.读取数据并添加新列并导出到新文件 bike_day_user = pd.read_csv('bike_day_user.txt', sep=' ', header=None, names=['instant','dteday','yr', 'casual',"registered"]) bike_day_user['cnt'] = bike_day_user['casual'] + bike_day_user['registered'] bike_day_user.to_excel('bike_day_user_cnt.xlsx', index=False) #4.读取数据并进行统计 bike_day_user_cnt = pd.read_excel('bike_day_user_cnt.xlsx') print('cnt最大值:',bike_day_user_cnt['cnt'].max()) print('ent最小值:',bike_day_user_cnt['cnt'].min()) print('2011号cnt年平均值:',bike_day_user_cnt[bike_day_user_cnt['yr'] == 0]['cnt'].mean()) print('2012年cnt年平均值:',bike_day_user_cnt[bike_day_user_cnt['yr'] == 1]['cnt'].mean()) print('2011年月严始值:', bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean()) print('2022年月平均值:', bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean()) # 5.可视化并保存图像 fig, ax = plt.subplots() ax.barh(bike_day_user_cnt['mnth'], bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean(), color='blue', label='2011') ax.barh(bike_day_user_cnt['mnth'], bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean(), color='lightblue', label='2012') ax.set_yticks(np.arange(1,13)) ax.set_yticklabels(['Jan','Feb','Mar', 'Apr', 'May','Jun','Jul','Aug', 'sep', 'Oct','Nov','Dec']) ax.set_xlabel('Average number of shared bike users') ax.set_title('Monthly Average Number of Shared Bike Users in 2011-2012') ax.legend() fig.savefig('bike_day_user_cnt.png', dpi=300)

2023-06-03 上传