小程序hover-class点击态效果实现


Posted in Javascript onFebruary 26, 2019

微信小程序设置 hover-class,实现点击态效果

增强小程序触感,提高用户交互感知度

概念及注意事项

微信小程序中,可以用 hover-class 属性来指定元素的点击态效果。但是在在使用中要注意,大部分组件是不支持该属性的。

  • 目前支持 hover-class 属性的组件有三个:view、button、navigator。
  • 不支持 hover-class 属性的组件,同时也不支持 hover-stop-propagation、hover-start-time、hover-stay-time 这三个属性。
  • 当 hover-class 的值为 none 时,组件上不会有任何点击态效果。

小程序hover-class点击态效果实现

注意事项

  • hover-class样式显示的原理是 点击时把样式加到class的样式中,冲突时,谁在后面就显示谁!
  • 当组件中没有任何指定的类时,直接使用 hover-class 就会起到相应的作用,但是当组件中已经指定了其他可能与 hover-class 冲突的类时,hover-class 无效
  • 将 hover-class 指定的类放在对应 wss 文件的最末尾,这样就不会被其他类所覆盖
  • 通常,当一个 view 组件中包含 image 等不支持 hover-class 的组件,但又需要在该组件上使用 hover-stop-propagation 属性的作用时,需要将不支持 hover-class 的组件用view、button 或 navigator 包裹起来

使用场景

1.列表页——详情页(点击跳转)

以新闻资讯为例,大部分应该都是这样的

小程序hover-class点击态效果实现

添加如下代码

//html
<view hover-class='wsui-btn__hover_list'>
  ...
</view>
//css
.wsui-btn__hover_list {
  opacity: 0.9;
  background: #f7f7f7;
}

点击效果如下图

小程序hover-class点击态效果实现

2.展示类表格列表(不触发跳转)

可设置hover-stay-time属性,突出显示触摸行或列

//html
<view hover-class='wsui-btn__hover_list' hover-stay-time="3000">
  ...
</view>
//css
.wsui-btn__hover_list {
  opacity: 0.9;
  background: #f7f7f7;
}

小程序hover-class点击态效果实现

3.提交类按钮

1种样式往往不能满足,各种形状的按钮,暂提供以下2种参考

.wsui-btn__hover_btn {
//圆形按钮
 opacity: 0.9;
 transform: scale(0.95, 0.95);
//长矩形按钮
 position: relative;
 top: 3rpx;
 left: 3rpx;
 box-shadow:0px 0px 8px rgba(0, 0, 0, .1) inset; 
}

小程序hover-class点击态效果实现

小程序hover-class点击态效果实现

上图以长矩形按钮为例,采用scale整体缩放效果显然不佳

小程序hover-class点击态效果实现

圆形按钮显然更合适对于同页面等待请求返回的按钮,配合 disabled 属性,使用加载中按钮的方案更为合理

4.有待考量的场景

选择类按钮,特指点击切换某些状态,会有及时的状态切换响应的,如遮罩层、active类导航图标类,首页的图标导航我认为以上无需添加hover类

特别说明
以上只是抛砖引玉,针对点击态,用户体验优化的示例
欢迎大家针对效果、使用场景、统一性等方面留言、评论作出优化和补充,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。
Javascript 相关文章推荐
详解new function(){}和function(){}() 区别分析
Mar 22 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
Jun 28 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
Aug 30 Javascript
JavaScript弹出窗口方法汇总
Aug 12 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
Feb 11 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
Oct 27 Javascript
基于jquery实现省市联动特效
Dec 17 Javascript
原生js的数组除重复简单实例
May 24 Javascript
简单实现js拖拽效果
Jul 25 Javascript
JavaScript实现的超简单计算器功能示例
Dec 23 Javascript
浅谈JS的原型和继承
May 08 Javascript
js实现倒计时秒杀效果
Mar 25 Javascript
JS实现计算小于非负数n的素数的数量算法示例
Feb 26 #Javascript
vue使用Font Awesome的方法步骤
Feb 26 #Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
Feb 26 #Javascript
create-react-app使用antd按需加载的样式无效问题的解决
Feb 26 #Javascript
JS实现电话号码的字母组合算法示例
Feb 26 #Javascript
JS实现的合并两个有序链表算法示例
Feb 25 #Javascript
JS实现判断有效的数独算法示例
Feb 25 #Javascript
You might like
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
python中import学习备忘笔记
2017/01/24 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
Pycharm修改python路径过程图解
2020/05/22 Python
Python同时处理多个异常的方法
2020/07/28 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
"火柴棍式"程序员面试题
2014/03/16 面试题
.NET现在共支持多少种语言
2014/02/26 面试题
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
竞选班长演讲稿
2013/12/30 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
意外伤害赔偿协议书
2014/09/16 职场文书
2014年药店工作总结
2014/11/20 职场文书
2014年卫生工作总结
2014/11/27 职场文书
Mysql开启外网访问
2022/05/15 MySQL
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers