微信小程序入门之指南针


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延时重复执行函数 lLoopRun.js
Jun 29 Javascript
javascript不可用的问题探究
Oct 01 Javascript
jQuery简单实现禁用右键菜单
Mar 10 Javascript
基于javascript实现句子翻牌网页版小游戏
Mar 23 Javascript
极力推荐10个短小实用的JavaScript代码段
Aug 03 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
微信小程序获取循环元素id以及wx.login登录操作
Aug 17 Javascript
JS实现DOM删除节点操作示例
Apr 04 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
手淘flexible.js框架使用和源代码讲解小结
Oct 15 Javascript
js+html实现点名系统功能
Nov 05 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
Apr 16 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的ob_start();控制您的浏览器cache!
2006/11/25 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
python实现简易内存监控
2018/06/21 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
python实现KNN近邻算法
2020/12/30 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
管道维修工岗位职责
2013/12/27 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
初中差生评语
2014/12/29 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
投资入股协议书
2016/03/22 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
创业计划书之烤红薯
2019/09/26 职场文书
导游词之崇武古城
2019/10/07 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL