小程序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 相关文章推荐
InnerHtml和InnerText的区别分析
Mar 13 Javascript
javascript实现捕捉键盘上按下的键
May 05 Javascript
JavaScript中数组继承的简单示例
Jul 29 Javascript
使用javaScript动态加载Js文件和Css文件
Oct 24 Javascript
详解javascript中原始数据类型Null和Undefined
Dec 17 Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
Aug 01 Javascript
AngularJs directive详解及示例代码
Sep 01 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
Sep 19 jQuery
使用Angular Cli如何创建Angular私有库详解
Jan 30 Javascript
如何将JavaScript将数组转为树形结构
Jun 02 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
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
JavaScript 对象、函数和继承
2009/07/07 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
python检测是文件还是目录的方法
2015/07/03 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
深圳-东方伟业笔试部分
2015/02/11 面试题
计算机应用职专应届生求职信
2013/11/12 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
拓展策划方案
2014/06/03 职场文书
挂职学习心得体会
2014/09/09 职场文书
承诺函格式模板
2015/01/21 职场文书
狮子林导游词
2015/02/03 职场文书
军训通讯稿范文
2015/07/18 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript
Nginx配置https的实现
2021/11/27 Servers
python中数组和列表的简单实例
2022/03/25 Python