Javascript 禁用手持设备上的fancybox
我需要确保,在iPhone、Android或任何手持设备上单击链接查看html文件时,它不会像在计算机上那样使用Fancybox进行查看 我尝试过@media的方法,但运气不好 是否有任何代码可以根据它是什么设备来禁用某些javascript位Javascript 禁用手持设备上的fancybox,javascript,android,iphone,fancybox,handheld,Javascript,Android,Iphone,Fancybox,Handheld,我需要确保,在iPhone、Android或任何手持设备上单击链接查看html文件时,它不会像在计算机上那样使用Fancybox进行查看 我尝试过@media的方法,但运气不好 是否有任何代码可以根据它是什么设备来禁用某些javascript位 谢谢 您可以使用 if( navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhon
谢谢 您可以使用
if( navigator.userAgent.match(/Android/i) ||
navigator.userAgent.match(/webOS/i) ||
navigator.userAgent.match(/iPhone/i) ||
navigator.userAgent.match(/iPod/i) ||
navigator.userAgent.match(/BlackBerry/)
){
// your fancybox instantiation here
}
但它永远不会100%准确您可以使用
if( navigator.userAgent.match(/Android/i) ||
navigator.userAgent.match(/webOS/i) ||
navigator.userAgent.match(/iPhone/i) ||
navigator.userAgent.match(/iPod/i) ||
navigator.userAgent.match(/BlackBerry/)
){
// your fancybox instantiation here
}
但它永远不会是100%准确的安德烈的解决方案将适用于特定的设备子集,但更好的方法可能是根据屏幕大小来实现,因为这可能是您不想使用facnybox的原因(因为屏幕太小) 这个怎么样:
if (window.innerWidth < 500 && window.innerHeight < 500) {
//small screen device - don't use fancy box
}
if(window.innerWidth<500&&window.innerHeight<500){
//小屏幕设备-不要使用花哨的盒子
}
您可以根据fancybox外观的阈值来交换宽度和高度。Andre的解决方案将适用于特定的设备子集,但更好的方法可能是根据屏幕大小进行交换,因为这可能就是您不想使用facnybox的原因(因为屏幕太小) 这个怎么样:
if (window.innerWidth < 500 && window.innerHeight < 500) {
//small screen device - don't use fancy box
}
if(window.innerWidth<500&&window.innerHeight<500){
//小屏幕设备-不要使用花哨的盒子
}
无论fancybox的阈值是什么,您都可以交换宽度和高度,使其看起来不错。我正在使用这种方法,它对我来说很好
if( $(window).width() > 480 && (!navigator.userAgent.match(/Android/i) ||
!navigator.userAgent.match(/webOS/i) ||
!navigator.userAgent.match(/iPhone/i) ||
!navigator.userAgent.match(/iPod/i) ||
navigator.userAgent.match(/BlackBerry/))
){
$(".royalSlide").click().fancybox({
'overlayShow' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic'
});
}我正在使用这种方法,它对我来说很好
if( $(window).width() > 480 && (!navigator.userAgent.match(/Android/i) ||
!navigator.userAgent.match(/webOS/i) ||
!navigator.userAgent.match(/iPhone/i) ||
!navigator.userAgent.match(/iPod/i) ||
navigator.userAgent.match(/BlackBerry/))
){
$(".royalSlide").click().fancybox({
'overlayShow' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic'
});
}在盒子里思考,没有双关语,非js解决方案:
.fancybox-overlay {
display: none !important;
}
@media (min-width: 1200px) {
.fancybox-overlay {
display: block !important;
}
};
在盒子里思考,没有双关语,非js解决方案:
.fancybox-overlay {
display: none !important;
}
@media (min-width: 1200px) {
.fancybox-overlay {
display: block !important;
}
};
对于fancybox 2,这对我来说很有效
$(.fancyboximg”)。单击(函数(e){
如果(窗内宽度<799){
e、 停止传播();
e、 预防默认值();
}
})
$(“.fancybox img”).fancybox({
差额:100,
自动调整大小:正确,
});代码>
对于fancybox 2,这对我来说很有效
$(.fancyboximg”)。单击(函数(e){
如果(窗内宽度<799){
e、 停止传播();
e、 预防默认值();
}
})
$(“.fancybox img”).fancybox({
差额:100,
自动调整大小:正确,
});代码>
禁用具有屏幕大小的fancybox
@media (min-width: 1000px) {
.fancybox-is-open {
display: none !important;
}};
禁用具有屏幕大小的fancybox
@media (min-width: 1000px) {
.fancybox-is-open {
display: none !important;
}};
你可以用一个正则表达式:navigator.userAgent.match(/Android | WebOS | iPhone | iPod | Blackberry/i)来实现这一点——它更干净一些。正如你所说的,这并不理想,因为Android可能是一款平板电脑,或者为了兼容性,该设备可能会伪装成Internet Explorer,或者可能是一些你从未听说过的中国移动设备,等等。你可以用一个正则表达式:navigator.userAgent.match(/Android | WebOS | iPhone | iPod | Blackberry/i)来实现这一点,更干净一些。正如你所说,这并不理想,因为Android可能是一款平板电脑,或者该设备可能为了兼容性而冒充Internet Explorer,或者可能是一些你从未听说过的中国移动设备,等等。我喜欢你的方法,但数字是错的。例如,IPhonem的分辨率为960*640是的,但iPhone使用虚拟像素,因此它报告其窗口大小为320x480,以免破坏为旧版iPhone构建的应用程序和网站。如果你不相信我,试试看!有一些大型安卓手机的分辨率可能超过500像素,但如果屏幕那么大,那么不管怎么说,使用fancy box都是可以的——这就是这种方法的要点——你是在测试设备的实际功能,而不是像“掌上电脑”这样的任意类别其中可能还包括iPad等笔记本电脑大小的设备。Android设备以DIP(设备独立像素)来测量屏幕大小,这与iPhone使用的虚拟像素类似,因此我认为同样适用。我是一名iOS开发人员,不是安卓开发人员,所以我不能肯定。谢谢各位,我会尝试一下。我不想在手机/平板电脑上安装fancybox的主要原因是,在大多数手机/平板电脑上都无法滚动iframe。我喜欢你的方法,但是数字是错误的。例如,IPhonem的分辨率为960*640是的,但iPhone使用虚拟像素,因此它报告其窗口大小为320x480,以免破坏为旧版iPhone构建的应用程序和网站。如果你不相信我,试试看!有一些大型安卓手机的分辨率可能超过500像素,但如果屏幕那么大,那么不管怎么说,使用fancy box都是可以的——这就是这种方法的要点——你是在测试设备的实际功能,而不是像“掌上电脑”这样的任意类别其中可能还包括iPad等笔记本电脑大小的设备。Android设备以DIP(设备独立像素)来测量屏幕大小,这与iPhone使用的虚拟像素类似,因此我认为同样适用。我是一名iOS开发人员,不是安卓开发人员,所以我不能肯定。谢谢各位,我会尝试一下。我不想在手机/平板电脑上安装fancybox的主要原因是,在大多数手机/平板电脑上都无法滚动iframe。而且它在窗口的中心位置也不好。