使用媒体查询时最安全的方法是什么,以便在不在触摸屏设备上时发生某些事情?如果没有办法,你建议使用像!window.TouchModernizr 这样的JavaScript解决方案吗?
我正在寻找适用于触摸设备的拖放插件.
我想要与jQuery UI插件类似的功能,它允许"droppable"元素.
该jqtouch插件支持拖动操作,但没有落下.
这是拖放,只支持iPhone/iPad.
任何人都可以指向一个适用于android/ios的拖放插件的方向吗?
...或者有可能更新jqtouch插件的droppability,它已经在Andriod和IOS上运行.
谢谢!
我正在编写一个旨在从台式机和平板电脑上使用的网站.当从桌面访问它时,我希望屏幕的可点击区域点亮:hover效果(不同的背景颜色等).使用平板电脑,没有鼠标,所以我不想要任何悬停效果.
问题是,当我在平板电脑上点击一些东西时,浏览器显然有某种"隐形鼠标光标",它移动到我点击的位置,然后将其留在那里 - 所以我刚刚点击的东西点亮了悬停效果,直到我点击其他东西.
我在使用鼠标时如何获得悬停效果,但在使用触摸屏时抑制它们?
如果有人想提出建议,我不想使用用户代理嗅探.同样的设备可能同时具有触摸屏和鼠标(今天可能不常见,但将来会更加如此).我对该设备不感兴趣,我对它目前的使用方式感兴趣:鼠标或触摸屏.
我已经尝试挂钩touchstart,touchmove和touchend事件,并呼吁preventDefault()对所有的人,这确实抑制"隐形鼠标"的一些时间; 但是如果我在两个不同的元素之间来回快速点击,经过几次点击它就会开始移动"鼠标光标"并点亮悬停效果 - 这就像我preventDefault并不总是很荣幸.除非必要,否则我不会厌倦你的细节 - 我甚至不确定这是正确的方法; 如果有人有更简单的解决方案,我会全力以赴.
编辑:这可以用沼泽标准的CSS :hover重现,但这里有一个快速的repro供参考.
<style>
.box { border: 1px solid black; width: 150px; height: 150px; }
.box:hover { background: blue; }
</style>
<div class="box"></div>
<div class="box"></div>
Run Code Online (Sandbox Code Playgroud)
如果你鼠标悬停在其中任何一个框上,它将获得我想要的蓝色背景.但是如果你点击其中任何一个盒子,它也会得到一个蓝色背景,这是我试图阻止的事情.
我还在这里发布了一个示例,它可以完成上述操作并且还可以挂钩jQuery的鼠标事件.您可以使用它来查看点击事件也会触发mouseenter,mousemove以及mouseleave.
:hover如果用户通过触摸设备访问我们的网站,我想忽略所有CSS声明.因为:hoverCSS没有意义,如果平板电脑在点击/点击时触发它,它甚至会令人不安,因为它可能会坚持直到元素失去焦点.说实话,我不知道为什么触摸设备:hover首先需要触发- 但这是现实,所以这个问题也是现实.
a:hover {
color:blue;
border-color:green;
// etc. > ignore all at once for touch devices
}
Run Code Online (Sandbox Code Playgroud)
那么,(如何):hover在声明触摸设备之后,我可以一次性删除/忽略所有CSS 声明(不必知道每一个)吗?
如何在iPad和其他触摸设备上使用jQuery-UI可排序功能?
http://jqueryui.com/demos/sortable/
我试图使用event.preventDefault();,event.cancelBubble=true;和event.stopPropagation();,touchmove以及scroll事件,但结果是页面不再滚动.
有任何想法吗?
我需要建立一个用手指在画布上绘画的项目,
得到我的手指的触摸事件和动作事件,然后绘制.
任何人都可以建议我如何开始项目,
什么是做这样的事情的最佳组件?
在android中,大多数事件侦听器方法返回一个布尔值.那个真/假值是什么意思?什么会导致子序列事件?
class MyTouchListener implements OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
logView.showEvent(event);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
关于上面的例子,如果在onTouch方法中返回true ,我发现每个触摸事件(DOWN,UP,MOVE等)都是根据我的logView捕获的.相反,如果返回false,则仅捕获DOWN事件.所以似乎返回false会阻止事件传播.我对么 ?
此外,在OnGestureListener中,许多方法也必须返回一个布尔值.它们有相同的含义吗?
我试图用一个touchstart事件的jQuery获得X位置,与live函数一起使用?
即
$('#box').live('touchstart', function(e) { var xPos = e.PageX; } );
Run Code Online (Sandbox Code Playgroud)
现在,这可以使用'click'作为事件.如何(不使用alpha jQuery Mobile)我是否通过触摸事件获得它?
有任何想法吗?
谢谢你的帮助.
我已经在项目中设计并实现了jQuery UI滑块.虽然它可移动并且可以正确缩放,但它不允许轻击和拖动.相反,你必须触摸滑块的位置.jQuery移动UI支持这一点,但我有时间投入已有的东西.
在桌面上你无法区分.在移动设备上很明显.
任何人都知道如何将此支持添加到jquery UI?
$("#cameraSlider").slider({
value: 2,
min: 1,
max: 3,
step: 1,
slide: function(event, ui) {
cameramen = ui.value;
return calcTotal();
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢,赛斯
我正在使用jQuery UI开发一个网站,我的网站上有几个元素在触摸屏设备上查看时似乎不兼容; 它们不会导致任何错误,但行为不是应该的.
有问题的元素是jQuery UI定义的滑块和rangeliders; 在触摸屏上,不是将触摸注册为拾取手柄和拖动,而是将手柄拖过滑块,而只是将整个网页滑动到屏幕的一侧.如果您点击手柄然后点击滑块上您希望手柄最终的位置,它确实有效,但这非常慢而且不理想.有任何想法吗?
我尝试下载jqtouch插件,然后附加.touch([...])到所有对slider()和rangeslider()的调用,但这不起作用.
谢谢!
更新:我在jQuery UI网站上找到了这个"补丁"
http://bugs.jqueryui.com/ticket/4143
这说明它有利于iPhone上的滑块,但现在又出现了另一个愚蠢的问题:如何将这个"补丁"合并到我的代码中?我是否只是像插件一样将它包含在代码的开头?