整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

小程序如何实现悬浮按钮

小程序如何实现悬浮按钮

日常小程序开发中,我们可能会有这样的需求,将按钮悬浮,不随着页面的滑动而改变位置,例如文章详情页的分享按钮,我想做成悬浮的样子,或者首页设置一个悬浮按钮来实现一些可扩展的功能,既美观又方便实用

实现悬浮按钮我将从两方面进行讲解,一个是实现图片按钮,另一个是将按钮进行悬浮。

图片按钮实现

在小程序提供的button组件中,没有单独将图片设置成按钮的功能,虽然小程序没有天然的组件支持,但是我们可以自己实现这样的效果

先上代码

页面代码

<!--pages/content-detail/content-detail.wxml-->
<button plain='true'   class="circle">
  <image mode='aspectFill' src='/images/icon/collect.png' class='image'></image>
</button>
复制代码

css样式代码

.circle[plain] {
  padding: 0;
  border: none;
  width: 64rpx;
  height: 64rpx;
}

.image {
  width: 64rpx;
  height: 64rpx;
}
复制代码

circle是按钮的类,image是图片的类

代码很简单,小蛋为大家解释下上面的代码

  • 隐藏按钮的显示 我们是要将图片显示出来,按钮包装的是图片,所以要将按钮隐藏,plain='true' 这个属性即可实现。
  • 隐藏按钮的边框 除了要隐藏按钮,还需要将其边框进行隐藏,对应的css样式为:border: none ,这里要注意,css的类上一定要加 [plain] 例如 .circle[plain] ,不加的话边框可能不会消失。
  • 图片和按钮对齐 图片的大小需要和按钮的大小保持一致,为了做到对齐,button中的css样式要设置padding:0

悬浮按钮实现

图片按钮设置好了,我们就要对其进行悬浮进行实现,要达到悬浮的效果只需要将按钮样式的position设置为fixed即可

.circle[plain] {
  display: flex;
  margin-right: 40rpx;
  right: 0;
  position: fixed;
  bottom: 15%;
  padding: 0;
  border: none;
  width: 64rpx;
  height: 64rpx;
}
复制代码

position是位置属性,它有许多不同的值,我们来看下官方给出的fixed的定义

不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。打印时,元素会出现在的每页的固定位置。fixed属性会创建新的层叠上下文。当元素祖先的 transform 属性非 none 时,容器由视口改为该祖先。

悬浮按钮的代码我们就已经完全实现了,我们来看下具体的效果

总结

整个悬浮按钮的实现其实代码量并不多,主要还是要对css的知识要掌握的更透彻,实现起来就没那么难,悬浮按钮的实现只是一盘小菜,下一篇文章我将带大家实现按钮点击呈现心形超酷炫的点赞特效,关注我,一起成长

为大家介绍使用 CSS 来制作按钮。


基本按钮样式

默认按钮 CSS 按钮

CSS 实例

.button {

background-color: #4CAF50; /* Green */

border: none;

color: white;

padding: 15px 32px;

text-align: center;

text-decoration: none;

display: inline-block;

font-size: 16px;

}


按钮颜色

GreenBlueRedGrayBlack

我们可以使用 background-color 属性来设置按钮颜色:

CSS 实例

.button1 {background-color: #4CAF50;} /* Green */

.button2 {background-color: #008CBA;} /* Blue */

.button3 {background-color: #f44336;} /* Red */

.button4 {background-color: #e7e7e7; color: black;} /* Gray */

.button5 {background-color: #555555;} /* Black */

尝试一下 ?


按钮大小

10px12px16px20px24px

我们可以使用 font-size 属性来设置按钮大小:

CSS 实例

.button1 {font-size: 10px;}

.button2 {font-size: 12px;}

.button3 {font-size: 16px;}

.button4 {font-size: 20px;}

.button5 {font-size: 24px;}


圆角按钮

2px4px8px12px50%

我们可以使用 border-radius 属性来设置圆角按钮:

CSS 实例

.button1 {border-radius: 2px;}

.button2 {border-radius: 4px;}

.button3 {border-radius: 8px;}

.button4 {border-radius: 12px;}

.button5 {border-radius: 50%;}

尝试一下 ?


按钮边框颜色

绿蓝红灰黑

我们可以使用 border 属性设置按钮边框颜色:

CSS 实例

.button1 {

background-color: white;

color: black;

border: 2px solid #4CAF50; /* Green */

}

...

尝试一下 ?


鼠标悬停按钮

绿蓝红灰黑

绿蓝红灰黑

我们可以使用 :hover 选择器来修改鼠标悬停在按钮上的样式。

提示: 我们可以使用 transition-duration 属性来设置 "hover" 效果的速度:

CSS 实例

.button {

-webkit-transition-duration: 0.4s; /* Safari */

transition-duration: 0.4s;

}

.button:hover {

background-color: #4CAF50; /* Green */

color: white;

}

...


按钮阴影

阴影按钮鼠标悬停后显示阴影

我们可以使用 box-shadow 属性来为按钮添加阴影:

CSS 实例

.button1 {

box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);

}

.button2:hover {

box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19);

}

尝试一下 ?


禁用按钮

正常按钮禁用按钮

我们可以使用 opacity 属性为按钮添加透明度 (看起来类似 "disabled" 属性效果)。

提示: 我么可以添加 cursor 属性并设置为 "not-allowed" 来设置一个禁用的图片:

CSS 实例

.disabled {

opacity: 0.6;

cursor: not-allowed;

}

尝试一下 ?


按钮宽度

250px

50%100%

默认情况下,按钮的大小有按钮上的文本内容决定( 根据文本内容匹配长度 )。 我们可以使用 width 属性来设置按钮的宽度:

提示: 如果要设置固定宽度可以使用像素 (px) 为单位,如果要设置响应式的按钮可以设置为百分比。

CSS 实例

.button1 {width: 250px;}

.button2 {width: 50%;}

.button3 {width: 100%;}

尝试一下 ?


按钮组

ButtonButtonButtonButton

移除外边距并添加 float:left 来设置按钮组:

CSS 实例

.button {

float: left;

}

尝试一下 ?


带边框按钮组

ButtonButtonButtonButton

我们可以使用 border 属性来设置带边框的按钮组:

CSS 实例

.button {

float: left;

border: 1px solid green

}

尝试一下 ?


按钮动画

CSS 实例

鼠标移动到按钮上后添加箭头标记:

Hover

尝试一下 ?

CSS 实例

点击时添加 "波纹" 效果:

Click

CSS 实例

点击时添加 "压下" 效果:

Click

如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!

UniApp中,可以通过在页面的header或footer中添加悬浮按钮来实现全站统一的悬浮按钮。以下是一个简单的示例代码:

```html

<template>

<view class="container">

<view class="header">

<view class="logo">Logo</view>

<view class="button" @click="handleButtonClick">

<text>悬浮按钮</text>

</view>

</view>

<view class="content">

<!-- 页面内容 -->

</view>

<view class="footer">

<view class="logo">Logo</view>

<view class="button" @click="handleButtonClick">

<text>悬浮按钮</text>

</view>

</view>

</view>

</template>

<script>

export default {

methods: {

handleButtonClick() {

// 悬浮按钮点击事件的处理逻辑

}

}

}

</script>

```

在上面的代码中,我们在页面的header和footer中都添加了一个悬浮按钮,并且都绑定了同一个点击事件。当用户点击悬浮按钮时,会触发`handleButtonClick`方法,你可以在这个方法中添加你想要实现的功能。例如,如果你想要在用户点击悬浮按钮时跳转到另一个页面,你可以在`handleButtonClick`方法中添加如下代码:

```javascript

handleButtonClick() {

this.$router.push('/target-page')

}

```

其中,`'/target-page'`是你想要跳转的目标页面的路径。这样,当用户点击悬浮按钮时,就会跳转到指定的页面。