You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
1.6 KiB
91 lines
1.6 KiB
<template>
|
|
<view>
|
|
<page-head :title="title"></page-head>
|
|
<view class="uni-padding-wrap">
|
|
<view class="uni-hello-text uni-center" style="padding-bottom:50rpx;">
|
|
旋转手机即可获取方位信息
|
|
</view>
|
|
<view class="direction">
|
|
<view class="bg-compass-line"></view>
|
|
<image class="bg-compass" src="../../../static/compass.png" :style="'transform: rotate('+direction+'deg)'"></image>
|
|
<view class="direction-value">
|
|
<text>{{direction}}</text>
|
|
<text class="direction-degree">o</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
title: 'onCompassChange',
|
|
direction: 0
|
|
}
|
|
},
|
|
onReady: function () {
|
|
uni.onCompassChange((res) => {
|
|
this.direction = parseInt(res.direction)
|
|
})
|
|
},
|
|
onUnload() {
|
|
// #ifndef MP-ALIPAY
|
|
uni.stopCompass();
|
|
this.direction = 0;
|
|
// #endif
|
|
|
|
// #ifdef MP-ALIPAY
|
|
uni.offCompassChange();
|
|
// #endif
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.direction {
|
|
position: relative;
|
|
margin-top: 70rpx;
|
|
display: flex;
|
|
width: 540rpx;
|
|
height: 540rpx;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin:0 auto;
|
|
}
|
|
|
|
.direction-value {
|
|
position: relative;
|
|
font-size: 200rpx;
|
|
color: #353535;
|
|
line-height: 1;
|
|
z-index: 1;
|
|
}
|
|
|
|
.direction-degree {
|
|
position: absolute;
|
|
top: 0;
|
|
right: -40rpx;
|
|
font-size: 60rpx;
|
|
}
|
|
|
|
.bg-compass {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 540rpx;
|
|
height: 540rpx;
|
|
transition: .1s;
|
|
}
|
|
|
|
.bg-compass-line {
|
|
position: absolute;
|
|
left: 267rpx;
|
|
top: -10rpx;
|
|
width: 6rpx;
|
|
height: 56rpx;
|
|
background-color: #1AAD19;
|
|
border-radius: 999rpx;
|
|
z-index: 1;
|
|
}
|
|
</style>
|
|
|