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>
|
|
|