组件代码
粘贴即用
javascript
<template>
<view>
<movable-area class="movable-area">
<movable-view class="movable-view" :x="x" :y="y" direction="all">
<slot name="img"></slot>
</movable-view>
</movable-area>
</view>
</template>
<script>
export default {
data() {
return {
x: 350, //x坐标
y: 600, //y坐标
}
}
}
</script>
<style lang="scss">
$all_width: 108rpx;
$all_height: 108rpx;
.movable-area {
height: 90vh;
width: 750rpx;
top: 0;
position: fixed;
pointer-events: none; //此处要加,鼠标事件可以渗透
z-index: 99999999;
.movable-view {
width: $all_width;
height: $all_height;
pointer-events: auto; //恢复鼠标事件
image {
// width: $all_width;
// height: $all_height;
}
}
}
</style>
父组件使用
需求如不满足请自行修改
第一种方式使用
效果图
javascript
<View @tap.stop="goMassage()">
<floatButton>
//通过插槽来将要显示的图片显示
<template v-slot:img>
<view class="butCustom flex jc ac">
//这里是显示的图片
<image src="" mode=""></image>
</view>
</template>
</floatButton>
</View>
js跳转等操作
goMassage() {
//要执行的操作
},
css样式
//样式和背景色都可以在这设置
.butCustom {
width: 100rpx;
height: 100rpx;
background: #1D9673;
border-radius: 999px;
}
第二种使用方式
效果图
无消息
有消息
javascript
<View @tap.stop="goMassage()">
<floatButton>
<template v-slot:img>
<view class="butCustom flex jc ac">
//消息的数量
<view class="newmagTotal flex jc ac" v-if="newmagTotal>0">
{{newmagTotal}}
</view>
//展示消息图片
<image src="" mode=""></image>
</view>
</template>
</floatButton>
</View>
js跳转等操作
goMassage() {
//要执行的操作
},
css样式
//样式和背景色都可以在这设置
.butCustom {
width: 100rpx;
height: 100rpx;
background: #1D9673;
border-radius: 999px;
position: relative;
.newmagTotal {
position: absolute;
right: -5rpx;
top: -5rpx;
padding: 3px 10rpx;
box-sizing: border-box;
background-color: red;
color: #fff;
border-radius: 999px;
font-size: 20rpx;
}
}