锤击JS点击并按手机
Hammer JS Tap and Press on Mobile
我正在尝试为移动浏览器构建以下内容:我有一排框。每个框下面都包含附加信息,并带有指向另一个网站的href。当我通过某个框滚动页面或只是点击它时,我想显示其他信息。如果我点击它,我想去 href。
我已经构建了一个带有click,touchstart和touchend的解决方案,它有效,但非常有问题,因为点击和触摸开始会干扰(我猜)。所以我希望用锤子.js构建一个更可靠的版本。我对事件处理的想法:
- 触摸启动时:显示的附加信息。
- 如果我在 250 毫秒之前释放:触摸被计为点击,我被发送到 href。
- 251 毫秒后:它无疑是一个水龙头
- 在滚动/触摸移动时:它无疑是一个点击
这就是我到目前为止拥有的js。我将按下时间的起点更改为 1ms,将阈值更改为 1000px 以便能够滚动。如果我按下并滚动,则不会触发 Pressup。我认为平底锅是在触发吗?如何更改按压的设置?
var myElement = document.getElementById('myElement');
var mc = new Hammer(myElement);
mc.add(new Hammer.Press({
event: 'press',
pointer: 1,
threshold: 1000,
time: 1,
}));
mc.on('press', function(event) {
$('.skills').addClass( "show" );
});
mc.on('pressup', function(event) {
$('.skills').removeClass( "show" );
});
我已经构建了一个代码笔(或者我应该在哪里发布它以进行移动测试?http://codepen.io/Vin-ni/pen/JXYMXm
所以我需要两件事发生。上压需要触发,在上按压时,我需要检查自按下以来的时间是大于还是小于 250 毫秒。
它会像
mc.on('pressup', function(event) {
$('.skills').removeClass( "show" );
if (time since press < 251ms) {
window.location.href = (this).data(link);
}
});
多谢!!
我的解决方案(它将事件绑定到网格中的每个div):
$('.class').each(function(){
var $this = $(this);
var mc = new Hammer.Manager(this);
mc.add( new Hammer.Tap() );
//customize Press event to trigger instantly + 1000px scrollable
mc.add(new Hammer.Press({
event: 'press',
pointer: 1,
threshold: 1000,
time: 1,
}));
mc.on('press tap', function(event) {
//do stuff
if (event.type == "tap") {
window.location.href = link;
$('.skills').removeClass( "show" );
}
});
mc.on('pressup', function(event) {
//undo stuff
});
});
相关文章:
- Skrollr js没有在手机中向下滚动
- js滑动不'我不能在智能手机上工作
- 让Highcharts.js图表在手机和桌面上看起来不错
- JS键码是Safari手机是一样的
- 锤击JS点击并按手机
- 如何使用css或js或其他任何东西来区分高分辨率手机和桌面
- 如何使用html,css和js文件构建APK文件,该文件将在任何安卓手机上运行
- Esri JS api 3.11已停止使用Chrome手机
- fullpage.js滚动条使其在手机浏览器上显得滞后
- 生产中手机/平板电脑浏览器上出现奇怪的JS错误
- Cocos2D JS花栗鼠PhysicsSprite移动操作在Android手机中不起作用
- 在Chrome手机上滚动时执行JS
- 全球框架(Bootstrap, Foundation…)智能手机JS检测
- Popcorn.js:手机浏览器YouTube "play"按钮不显示
- Sencha Touch如何加载自定义CSS, JS,如果用户使用PC或平板电脑或智能手机
- 调用js函数只能在jquery手机上第一次工作
- 在手机中使用js屏蔽密码
- 检测Android智能手机或Android平板电脑与JS
- 使用Three.js对球体进行纹理处理;不能在智能手机上工作
- 使用类固醇JS手机JS