在用户位置下雪时激活js
Activate js when snowing in users location
所以我有一个js,我想只在用户区下雪时激活。
Here is a JSFiddle Here
<h1 onclick="snowStorm.toggleSnow();">
text
</h1>
<script src="https://web.archive.org/web/20161109225359/http://live.superedu.ml/snow.js"></script>
<script>
snowStorm.followMouse = false;
snowStorm.freezeOnBlur = true;
snowStorm.autoStart = false;
</script>
如果你点击测试,它会激活雪。当用户所在的地方下雪时,我该如何激活它呢?谢谢你
首先,您需要知道用户所在位置是否下雪。所以你要知道的第一件事就是他们在哪里。为此,您可以使用IP地理定位服务。谷歌它。其中之一是https://freegeoip.net/
接下来,您需要向天气服务询问天气情况。查看https://darksky.net/dev/docs/forecast
为了向像DarkSky API这样的服务请求一些东西,你需要告诉他们你对预测感兴趣的位置,这是你使用从上面的地理位置服务收到的位置坐标的地方。
你将收到一个响应"对象"从DarkSky API,其中将包含一堆信息,其中降水信息如下所述:
在
precipType
可选
在给定时间内发生的降水类型。如果定义了,该属性将具有以下值之一:"rain"
、"snow"
或"sleet"
(分别指冻雨、冰球和“wintery mix”
)。(如果precipIntensity
为0,则不定义此属性。)
https://darksky.net/dev/docs/response
之后,您可以沿着
一行编写代码if (data.precipType === 'snow') { // do something }
总的来说,它是这样的:
- 发送请求到GeoIP(哪里是ip 8.8.8.8 ?)
- 从GeoIP接收响应(它在晚:1.2345 lon:1.432)
- 发送请求到DarkSky(今天在lat:1.2345 lon:1.432是什么天气?)
- 接收来自DarkSky (snow!)的响应
为了成功完成这个练习,您需要熟悉一点JS中的基本异步编程,以及如何发送AJAX请求,并使用您收到的响应。
简而言之,你需要学习如何编写能够在函数A完成后才启动函数B的代码(在未知的时间之后,比如通过网络请求时)
所以看起来更像这样:
1. Send request to GeoIP (where is ip 8.8.8.8 ?)
2. Receive response from GeoIP (it's at lat:1.2345 lon:1.432)
3. Send request to DarkSky (what's the weather today at lat:1.2345 lon:1.432 ?)
4. Receive response from DarkSky (snow!)
5. … do stuff …
可以搜索的关键字有jQuery AJAX,回调,以及更高级的Promises。但是从前两个开始。
祝你好运!
- JS不工作:Sublime 3编辑器-Var main=函数()-=不是“”;激活“;(功能新手)
- JS:Onchange事件在启动时激活
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 通过自定义JS功能激活Sencha Touch选项卡
- skrollr.js加载后立即激活相对模式
- 离开文本区域时需要激活JS代码
- JS表单验证,如果所有字段正确,则激活提交按钮
- 如何创建激活jQuery/js函数的图像按钮
- 点击DIV或A标签激活JS功能
- JS 函数在页面重新加载时激活警报
- 在fullpage.js中重新激活自动滚动
- 使用点击香草JS,在错误的节点上激活
- 我如何编程一个JS按钮,它也可以在点击和滚动时激活转换
- 使用 Greasemonkey 更改变量或激活 JS 链接的<选择>下拉菜单
- 在用户位置下雪时激活js
- 是否激活了sail.js
- 流星js的重新激活是如何工作的
- 只有当parsley.js的警报激活时,才会出现警告框
- 如何激活JS文件在一个单独的文件夹
- 可激活.js在URL上标记JS发送值