微信小程序入门之指南针


Posted in Javascript onOctober 22, 2020

微信小程序入门案例——指南针,供大家参考,具体内容如下

涉及技术:获取地理位置、监听指南针角度

目录结构:

微信小程序入门之指南针

pages\index\index.js

Page({
 
 /**
 * 页面的初始数据
 */
 data: {
 rotate:0,
 degree:'未知',
 direction:'',
 lat:0,
 lon:0,
 alt:0
 },
 
 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {
 var that = this;
 wx.getLocation({
 altitude: true,
 success:function(res){
 that.setData({
  lat:res.latitude.toFixed(2),
  lon:res.longitude.toFixed(2),
  alt:res.altitude.toFixed(2)
 })
 }
 })
 wx.onCompassChange(function(res){
 let degree = res.direction.toFixed(0);
 that.getDirection(degree)
 that.setData({
 rotate:360 - degree
 })
 })
 
 },
 /**
 * 判断方向
 */
 getDirection:function(deg){
 let dir = '未知';
 if(deg>=340||deg<=20){
 dir='北';
 }else if(deg>20&°<70){
 dir='东北';
 }else if(deg>=70&°<=110){
 dir='东';
 }else if(deg>110&°<160){
 dir='东南';
 }else if(deg>=160&°<=200){
 dir='南';
 }else if(deg>200&°<250){
 dir='西南';
 }else if(deg>=250&°<=290){
 dir='西';
 }else if(deg>290&°<340){
 dir='西北';
 }
 this.setData({
 degree:deg,
 direction:dir
 })
 },
 
 /**
 * 生命周期函数--监听页面初次渲染完成
 */
 onReady: function () {
 
 },
 
 /**
 * 生命周期函数--监听页面显示
 */
 onShow: function () {
 
 },
 
 /**
 * 生命周期函数--监听页面隐藏
 */
 onHide: function () {
 
 },
 
 /**
 * 生命周期函数--监听页面卸载
 */
 onUnload: function () {
 
 },
 
 /**
 * 页面相关事件处理函数--监听用户下拉动作
 */
 onPullDownRefresh: function () {
 
 },
 
 /**
 * 页面上拉触底事件的处理函数
 */
 onReachBottom: function () {
 
 },
 
 /**
 * 用户点击右上角分享
 */
 onShareAppMessage: function () {
 
 }
})

pages\index\index.wxml

<view class="container">
 <image src="/images/1.jpg" mode="widthFix" style="transform:rotate({{rotate}}deg);"></image>
 <view class="status">
 <text class="bigTxt">{{degree}}°{{direction}}</text>
 <text class="smallTxt">北纬{{lat}}东经{{lon}}</text>
 <text class="smallTxt">海拔{{alt}}米</text>
 </view>
</view>

pages\index\index.wxss

.container{
 height: 100vh;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: space-around;
 color: #A46248;
}
image{
 width: 80%;
}
.status{
 display: flex;
 flex-direction: column;
 align-items: center;
}
.bigTxt{
 font-size: 30pt;
 margin: 15rpx;
}
.smallTxt{
 font-size: 20pt;
 margin: 15rpx;
}

app.js

App({
 
 /**
 * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
 */
 onLaunch: function () {
 
 },
 
 /**
 * 当小程序启动,或从后台进入前台显示,会触发 onShow
 */
 onShow: function (options) {
 
 },
 
 /**
 * 当小程序从前台进入后台,会触发 onHide
 */
 onHide: function () {
 
 },
 
 /**
 * 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
 */
 onError: function (msg) {
 
 }
})

app.json

{
 "pages":[
 "pages/index/index"
 ],
 "window":{
 "backgroundTextStyle":"light",
 "navigationBarBackgroundColor": "#fff",
 "navigationBarTitleText": "指南针",
 "navigationBarTextStyle":"black"
 },
 "permission":{
 "scope.userLocation":{
 "desc":"你的位置信息将用于小程序指南针的效果展示"
 }
 },
 "style": "v2",
 "sitemapLocation": "sitemap.json"
}

运行截图:

微信小程序入门之指南针

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript代码混淆综合解决方案-Javascript在线混淆器
Dec 18 Javascript
javascript 中对象的继承〔转贴〕
Jan 22 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
Apr 29 Javascript
extjs 学习笔记(二) Ext.Element类
Oct 13 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
Aug 02 Javascript
js如何判断用户是否是用微信浏览器
Jun 05 Javascript
基于JS代码实现图片在页面中旋转效果
Jun 16 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
Jul 12 Javascript
JS和canvas实现俄罗斯方块
Mar 14 Javascript
Vue的土著指令和自定义指令实例详解
Feb 04 Javascript
vue用递归组件写树形控件的实例代码
Jul 19 Javascript
JS实现烟花爆炸效果
Mar 10 Javascript
微信小程序实现拼图小游戏
Oct 22 #Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 #Javascript
在Vue中使用Select选择器拼接label的操作
Oct 22 #Javascript
JavaScript 中判断变量是否为数字的示例代码
Oct 22 #Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 #Javascript
jquery实现抽奖功能
Oct 22 #jQuery
Vue实现简单的留言板
Oct 23 #Javascript
You might like
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
canvas知识总结
2017/01/25 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
jquery编写日期选择器
2017/03/16 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
Python base64编码解码实例
2015/06/21 Python
Python3实现转换Image图片格式
2018/06/21 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Django组件content-type使用方法详解
2019/07/19 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
python切割图片的示例
2020/11/12 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
大门门卫岗位职责
2013/11/30 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
教书育人演讲稿
2014/09/11 职场文书
自我推荐信格式模板
2015/03/24 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
angular4实现带搜索的下拉框
2022/03/25 Javascript