小程序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 相关文章推荐
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
js动画效果制件让图片组成动画代码分享
Jan 14 Javascript
JavaScript在IE和FF下的兼容性问题
May 19 Javascript
禁用页面部分JavaScript不是全部而是部分
Sep 03 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
Apr 16 Javascript
Node.js中的process.nextTick使用实例
Jun 25 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
Mar 07 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
May 25 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
JS继承与闭包及JS实现继承的三种方式
Oct 15 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
Oct 25 Javascript
vue组件表单数据回显验证及提交的实例代码
Aug 30 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 中的str_replace 函数总结
2007/04/27 PHP
让PHP以ROOT权限执行系统命令的方法
2011/02/10 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
JS之小练习代码
2008/10/12 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
input框中的name和id的区别
2016/11/16 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
vue中activated的用法
2021/01/03 Vue.js
Python生成pdf文件的方法
2014/08/04 Python
python rsa 加密解密
2017/03/20 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
Python爬取某平台短视频的方法
2021/02/08 Python
绩效工资分配方案
2014/01/18 职场文书
入党申请自荐书范文
2014/02/11 职场文书
搞笑征婚广告词
2014/03/17 职场文书
卖车协议书范例
2014/09/16 职场文书
五年级小学生评语
2014/12/26 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS