发布网友 发布时间:2024-09-15 01:55
共1个回答
热心网友 时间:2024-09-15 23:01
需求背景
在日常小程序开发中,我们可能会有这样的需求,将按钮悬浮,不随着页面的滑动而改变位置,例如文章详情页的分享按钮,我想做成悬浮的样子,或者首页设置一个悬浮按钮来实现一些可扩展的功能,既美观又方便实用
实现悬浮按钮我将从两方面进行讲解,一个是实现图片按钮,另一个是将按钮进行悬浮。
图片按钮实现在小程序提供的button组件中,没有单独将图片设置成按钮的功能,虽然小程序没有天然的组件支持,但是我们可以自己实现这样的效果
先上代码
页面代码
<!--pages/content-detail/content-detail.wxml--><buttonplain='true'class="circle"><imagemode='aspectFill'src='/images/icon/collect.png'class='image'></image></button>css样式代码
.circle[plain]{padding:0;border:none;width:rpx;height:rpx;}.image{width:rpx;height:rpx;}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:rpx;height:rpx;}position是位置属性,它有许多不同的值,我们来看下官方给出的fixed的定义
不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。打印时,元素会出现在的每页的固定位置。fixed属性会创建新的层叠上下文。当元素祖先的transform属性非none时,容器由视口改为该祖先。
悬浮按钮的代码我们就已经完全实现了,我们来看下具体的效果:
总结整个悬浮按钮的实现其实代码量并不多,主要还是要对css的知识要掌握的更透彻,实现起来就没那么难,悬浮按钮的实现只是一盘小菜,下一篇文章我将带大家实现按钮点击呈现心形超酷炫的点赞特效,关注我,一起成长。