uni-app 手机悬浮框插件需求

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app 手机悬浮框插件需求

类似OKex的行情悬浮框 APP不杀进程就可以一直悬浮在所有应用上方

4 回复

承接双端(Android,iOS)原生插件开发,uni-app开发,出售各类型源码。欢迎咨询
QQ:1559653449 V X:fan-rising


可以做,有现成的,联系QQ:1804945430

可以做,有现成的,联系QQ:1196097915

针对您提出的uni-app手机悬浮框插件需求,以下是一个基本的实现思路和代码示例。在uni-app中,实现悬浮框效果通常涉及到自定义组件、页面布局以及事件处理。以下是一个简化的实现案例,用于展示如何在uni-app中创建一个可拖动的悬浮框插件。

1. 创建自定义悬浮框组件

首先,我们创建一个自定义组件FloatingBox.vue,用于显示悬浮框内容。

<template>
  <view
    class="floating-box"
    :style="{ top: position.y + 'px', left: position.x + 'px' }"
    @touchstart="onTouchStart"
    @touchmove="onTouchMove"
  >
    <slot></slot>
  </view>
</template>

<script>
export default {
  data() {
    return {
      position: { x: 100, y: 100 },
      start: { x: 0, y: 0 },
      offset: { x: 0, y: 0 }
    };
  },
  methods: {
    onTouchStart(e) {
      this.start = { x: e.touches[0].clientX, y: e.touches[0].clientY };
      this.offset = { x: this.position.x - this.start.x, y: this.position.y - this.start.y };
    },
    onTouchMove(e) {
      let touch = e.touches[0];
      this.position = {
        x: touch.clientX - this.offset.x,
        y: touch.clientY - this.offset.y
      };
    }
  }
};
</script>

<style>
.floating-box {
  width: 200px;
  height: 200px;
  background-color: rgba(0, 0, 0, 0.7);
  color: white;
  position: fixed;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
</style>

2. 在页面中使用悬浮框组件

接下来,在您的页面中使用这个自定义组件。例如,在pages/index/index.vue中:

<template>
  <view>
    <FloatingBox>
      <text>悬浮框内容</text>
    </FloatingBox>
  </view>
</template>

<script>
import FloatingBox from '@/components/FloatingBox.vue';

export default {
  components: {
    FloatingBox
  }
};
</script>

总结

以上代码展示了如何在uni-app中创建一个可拖动的悬浮框组件。通过监听触摸事件(touchstarttouchmove),我们可以实时更新悬浮框的位置,实现拖动效果。您可以根据实际需求进一步美化悬浮框的样式,或者添加更多功能,如点击关闭、自定义内容等。这个基础实现应该能够满足大多数悬浮框插件的基本需求。

回到顶部