我有一个图片库,图片足够大,可以填满 iPhone 屏幕。
图像也是链接,因此您可以想象,在 iPhone 上滚动变得非常令人沮丧,因为您经常不小心点击链接。
有没有办法单独使用css来防止这种情况?
如果不是,那么解决这个问题最简单的方法是什么?
谢谢!
我建议使用Javascript。但是,我找到了一种只使用 CSS 的方法。第一步,您需要识别客户端浏览器,只需在 HTML 文件中的 HEAD 会话中添加以下代码:
<link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="../iphone.css" type="text/css" />
只有当客户端在 iphone 中使用浏览器时,才会加载“iphone.css”的内容。
在此文件“iphone.css”中,您需要创建一个类来禁用链接:
.disableLink {
pointer-events: none;
cursor: default;
}
在您的画廊 HTML 代码中,在您的链接中添加参考:
<a href="link.html" class="disableLink"> IMAGE </a>
这些步骤仅适用于 iPhone/iPod touch,但如果您查看我的第二个参考资料,您将看到适应 iPhone 4/iPod touch 4G 的方法:
我不认为有基于 CSS 的解决方案(CSS 并不是真正旨在改变 HTML 元素的行为)。
您可以在页面加载时使用 JavaScript 检查浏览器视口的宽度,然后在视口为手机大小时查找并禁用/删除链接。
请参阅PPK 的“A Tale of Two Viewports”文章,了解在您的情况下要检查哪些 JavaScript 属性来确定宽度(我还没有做足够的移动开发来记住我的头脑)。
我喜欢 的想法pointer-events: none;
,但我不会使用它,因为它没有得到很好的支持。
如果我们将移动设备定义为只有特定的屏幕尺寸,我会这样做:
$(function () {
var mobile = ($(window).width() < 481);
$('#image-gallery').find('a').click(function (e) {
if (mobile)
e.preventDefault();
});
});
但是,我会尝试将“移动”定义为其他东西,例如,支持触摸事件的浏览器。