原生view做按钮控件时,要自己实现点击效果,如官方原生tabbar的demo中:
drawNativeIcon.addEventListener('click', function(e) {
mui.alert('你点击了图标,你在此可以打开摄像头或者新窗口等自定义点击事件。', '悬浮球点击事件');
// 重绘字体颜色
drawNativeIcon.drawText('\ue600', {}, {
fontSrc: '_www/fonts/iconfont.ttf',
align: 'center',
color: '#000',
size: '30px'
}, 'icon');
});
这个demo中,点击后,字体颜色设置为 '#000',之后会一直保持这个状态。再点就看不出变化。
我稍微改进了一下,监听触摸开始和结束:
shortCutIcon.addEventListener('touchstart', function(e) {
// 重绘字体颜色
shortCutIcon.drawText('\ue678', {}, {
fontSrc: '_www/fonts/iconfont.ttf',
align: 'center',
color: '#000',
size: '30px'
}, 'icon');
});
shortCutIcon.addEventListener('touchend', function(e) {
// 重绘字体颜色
shortCutIcon.drawText('\ue678', {}, {
fontSrc: '_www/fonts/iconfont.ttf',
align: 'center',
color: '#fff',
size: '30px'
}, 'icon');
});
正常情况下,是能够模拟按钮点击状态。但当按住屏幕,手指移出控件后,并不触发touchend事件,所以此时按钮状态不复原。
不知道是否有类似android中的cancel事件。
1 个回复
j***@163.com (作者)
补充,上述现象出现在Android上。在IOS中,手指移出控件后,仍会触发touchend事件