问题如上
Vant版本:0.12.9
Vue 版本: 2.9.3
谷歌浏览器响应模式可以正常关闭,非响应模式下就不行。
火狐浏览器 响应模式开启触摸模拟可以。
ImagePreview 监听的是 Touch 事件,所以在不支持 Touch 事件的浏览器上是无法操作的,在手机上可以正常操作
@chenjiahan
您好,我发现官方的demo单击也是可以关闭的。
Popup也是可以鼠标单击后关闭的,官方可以支持一下这个特性吗?
本人实在新手,我希望请教您一下,如果您可以抽出一些时间的话,我想知道那是怎么做到的,可以简单提示一下吗??
官方的示例是额外引入了一个库去在 PC 上模拟 Touch 事件的,链接:https://github.com/hammerjs/touchemulator
官方的示例是额外引入了一个库去在 PC 上模拟 Touch 事件的,链接:https://github.com/hammerjs/touchemulator
这个库要怎么用啊
实际测试结果,如果想兼容PC,https://github.com/hammerjs/touchemulator 这个和官方的示例其实还不同,官方示例的代码如下
(function(t, n) {
var e;
document.createTouch || (document.createTouch = function(t, n, e, o, r, a, s) {
return new i(n,e,{
pageX: o,
pageY: r,
screenX: a,
screenY: s,
clientX: o - window.pageXOffset,
clientY: r - window.pageYOffset
},0,0)
}
),
document.createTouchList || (document.createTouchList = function() {
for (var t = o(), n = 0; n < arguments.length; n++)
t[n] = arguments[n];
return t.length = arguments.length,
t
}
);
var i = function(t, n, e, i, o) {
i = i || 0,
o = o || 0,
this.identifier = n,
this.target = t,
this.clientX = e.clientX + i,
this.clientY = e.clientY + o,
this.screenX = e.screenX + i,
this.screenY = e.screenY + o,
this.pageX = e.pageX + i,
this.pageY = e.pageY + o
};
function o() {
var t = [];
return t.item = function(t) {
return this[t] || null
}
,
t.identifiedTouch = function(t) {
return this[t + 1] || null
}
,
t
}
function r(t) {
return function(n) {
var i, o, r;
1 === n.which && (("mousedown" === n.type || !e || e && !e.dispatchEvent) && (e = n.target),
i = t,
o = n,
(r = document.createEvent("Event")).initEvent(i, !0, !0),
r.altKey = o.altKey,
r.ctrlKey = o.ctrlKey,
r.metaKey = o.metaKey,
r.shiftKey = o.shiftKey,
r.touches = s(o),
r.targetTouches = s(o),
r.changedTouches = a(o),
e.dispatchEvent(r),
"mouseup" === n.type && (e = null))
}
}
function a(t) {
var n = o();
return n.push(new i(e,1,t,0,0)),
n
}
function s(t) {
return "mouseup" === t.type ? o() : a(t)
}
function l() {
!function() {
for (var t = [window, document.documentElement], n = ["ontouchstart", "ontouchmove", "ontouchcancel", "ontouchend"], e = 0; e < t.length; e++)
for (var i = 0; i < n.length; i++)
t[e] && void 0 === t[e][n[i]] && (t[e][n[i]] = null)
}(),
window.addEventListener("mousedown", r("touchstart"), !0),
window.addEventListener("mousemove", r("touchmove"), !0),
window.addEventListener("mouseup", r("touchend"), !0)
}
l.multiTouchOffset = 75,
new l
})()
import '@vant/doc/helper/touch-simulator';
引入这个文件,在PC端的交互就和移动端的交互一样了吧,像滑动这种的。