小程序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 相关文章推荐
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
Jul 31 Javascript
from 表单提交返回值用post或者是get方法实现
Aug 21 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
Dec 03 Javascript
jquery实现input输入框实时输入触发事件代码
Jan 28 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
网页收藏夹显示ICO图标(代码少)
Aug 04 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
Aug 18 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
vue的三种图片引入方式代码实例
Nov 19 Javascript
详解TypeScript中的类型保护
Apr 29 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 Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
python实现按行切分文本文件的方法
2016/04/18 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
对python中的装包与解包实例详解
2019/08/24 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
python支持多继承吗
2020/06/19 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
html5弹跳球示例代码
2013/07/23 HTML / CSS
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
年度献血先进个人事迹材料
2014/02/14 职场文书
活动总结怎么写
2014/04/28 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
Mysql排序的特性详情
2021/11/01 MySQL
springcloud整合seata
2022/05/20 Java/Android