[微信小程序]手指触摸动画效果(完整代码附效果图)
来源:互联网 发布:firefly rk3288 源码 编辑:程序博客网 时间:2024/05/06 12:21
欢迎加入新微信小程序开发交流群(173683895)
本文共有两个示例,先上图
示例一: 示例二:
示例一代码(微信小程序):
// pages/test/test.jsPage({ containerTap: function (res) { var that = this var x = res.touches[0].pageX; var y = res.touches[0].pageY + 85; this.setData({ rippleStyle: '' }); setTimeout(function () { that.setData({ rippleStyle: 'top:' + y + 'px;left:' + x + 'px;-webkit-animation: ripple 0.4s linear;animation:ripple 0.4s linear;' }); },200) },})
<view class="ripple" style="{{rippleStyle}}"></view><view class="container" bindtouchstart="containerTap"></view>
page{height:100%}.container{ width:100%; height:100%; overflow: hidden}.ripple { background-color: rgba(0, 0, 0, 0.6); border-radius: 100%; height:10px; width:10px; margin-top: -90px; position: absolute; -webkit-transform: scale(0); overflow: hidden}@-webkit-keyframes ripple { 100% { -webkit-transform: scale(12); transform: scale(12); background-color: transparent; }}
示例二代码(html5)
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><title>点击后水波纹扩散填充组件效果</title><style>.btn {position: relative;width: 13em;height: 3em;margin: 2em;border: none;outline: none;letter-spacing: .2em;font-weight: bold;background: #F6774F;cursor: pointer;overflow: hidden;user-select: none;border-radius: 2px;color: #fff;}.ripple {position: absolute;background: rgba(0, 0, 0, .15);border-radius: 100%;transform: scale(0);pointer-events: none;}.ripple.show {animation: ripple 1s ease-out;}@keyframes ripple {to {transform: scale(2);opacity: 0;}}</style></head><body><h1 class="center mt40">点击后水波纹扩散填充组件效果</h1><div class="main center"><button id="bowen" class="btn ">BUTTON</button></div><script>var addRippleEffect = function(e) {var target = e.target;//target 事件属性可返回事件的目标节点(触发该事件的节点)//console.log(e.target)if(target.id != 'bowen') return false;//如果当前节点的id不等于'bowen',就返回false,停止执行函数var rect = target.getBoundingClientRect();//target.getBoundingClientRect() 方法返回元素的大小及其相对于视口的位置。var ripple = target.querySelector('.ripple');//target.querySelector()方法返回文档中匹配指定 CSS 选择器的一个元素。console.log(ripple) //这里创建一个ripple节点对象,此时为nullif(!ripple) {ripple = document.createElement('span'); //这里ripple等于<span></span>//document.createElement()在当前节点创建一个标签元素ripple.className = 'ripple';//这里ripple等于<span class="ripple"></span>//给ripple添加一个样式类名ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px';//这里height和width是相等的//Math.max(a,b)返回两个指定的数中带有较大的值的那个数。target.appendChild(ripple);//在当前节点添加ripple元素对象//appendChild(); 在指定节点添加元素}ripple.classList.remove('show');//移除ripple对象名为的'show' CSS 类//classList 属性返回元素的类名,可以使用 add() 和 remove() 方法修改它.该属性用于在元素中添加,移除及切换 CSS 类。var top = e.pageY - rect.top - ripple.offsetHeight / 2 - document.body.scrollTop;var left = e.pageX - rect.left - ripple.offsetWidth / 2 - document.body.scrollLeft;//e.pageY 显示鼠标的位置 offsetHeight 获取元素的高度 offsetWidth 获取元素的宽度 scrollTop() 方法返回或设置匹配元素的滚动条的垂直位置。ripple.style.top = top + 'px';ripple.style.left = left + 'px';ripple.classList.add('show');return false;}document.addEventListener('click', addRippleEffect);//addEventListener('事件名称',执行函数)监听事件</script></body></html>
阅读全文
1 0
- [微信小程序]手指触摸动画效果(完整代码附效果图)
- [微信小程序]动画,从顶部掉花的效果(完整代码附效果图)
- [微信小程序]物流信息样式加动画效果(源代码附效果图)
- [微信小程序]转发(分享)和打电话功能,完整代码附效果图
- [微信小程序]实现一个自定义遮罩层组件(完整示例代码附效果图)
- [微信小程序]真正实现聊天对话(文本,图片)的功能(完整代码附效果图)
- 微信小程序服务器请求和上传数据,上传图片并展示,提交表单完整实例代码附效果图
- [微信小程序]组件化开发,以一个自定义模块框组件当做示例(附完整示例代码和效果图)
- [微信小程序]省市区地区选择器(完整代码赋效果图)
- 倒计时代码-附效果图
- js动画效果(贴一个完整的代码,附js文件写法)
- js 计时器,倒计时完整实例代码附效果图 制作一个当前时间的动态时钟
- js 实现多选框(复选框) 和单选框,下拉框功能完整示例代码附效果图
- js删除组数中的某一个元素(完整代码附效果图)
- [微信小程序]星级评分和展示(详细注释附效果图)
- JQ实现导航效果(附效果图)
- 图片循环滚动代码-附效果图
- 完整的动画程序
- QT 基础教程
- 2017年技术、平台、工具、语言&架构
- Spring Boot 使用wangEditor实现图片上传
- JDK7与JDK8环境共存与切换
- 【设计模式】抽象工厂模式(Abstract Factory Pattern)
- [微信小程序]手指触摸动画效果(完整代码附效果图)
- 麦肯锡预测2030年全球将有8亿人口因机器人失业 | 未来30年,人工智能机器将成为生活中的标配
- Fortinet:网络安全越来越勤快,可甲方却应该越来越「懒」
- 六度人和(EC)张星亮:SaaS本质上还是互联网产品,而非软件
- IT 治理与数据治理-大华南季度公开课培训成功举行
- 归并排序——算法导论学习
- SQL中DateTime转换成Varchar样式
- 史上最简单的 SpringCloud 教程 | 终章
- python学习之List【列表】