如何在 iOS 设备上使用 JavaScript(或 CSS)添加点击事件
How can I add click events with JavaScript (or CSS) on iOS devices?
我尝试在网站上实现悬停技术时遇到问题。基本上,我有div
(.portfolio-item
)用于显示background-image
。.portfolio-item
包含一个直接子元素 — <div class="portfolio-item-info">
子元素是绝对定位的,并且仅在用户将鼠标悬停在父元素上时才显示。
这在笔记本电脑和Android设备上工作正常,但对于iOS设备,它根本不起作用。因此,如果用户触摸.portfolio-item
div,则没有任何反应。
.HTML
<div class="portfolio-item" style="background-image: url('path/to/url')">
<div class="portfolio-item-info">
<h3 class="font-secondary-bold">Some Title</h3>
<ul class="list-unstyled list-inline">
<li>Publication</li>
<li>Print</li>
</ul>
<a href="#">Take a look</a>
</div>
</div>
.CSS
.portfolio-item {
background-color: #fff;
background-size: cover;
margin-bottom: 24px;
overflow: hidden;
position: relative;
min-height: $portfolioItemHeight;
&:before {
content: "";
background-color: $colorLight;
background-color: rgba(255, 255, 255, 0.8);
min-height: $portfolioItemHeight;
opacity: 0;
position: absolute;
left: 0;
right: 0;
transition: opacity 0.5s ease-in-out;
}
&:hover,
&:focus {
&:before {
opacity: 1;
}
.portfolio-item-info {
top: 0;
}
}
}
为了使它工作,我正在使用一些非常笨拙的东西,我在div .portfolio-item
上放置了一个onclick
属性,例如
<div class="portfolio-item" onclick="void(0)" style="background-image: url('path/to/url')">
这个笨拙的解决方案确实有效,但理想情况下我想要更少的东西......哈克。
没有标准定义触摸设备应该如何处理悬停,这取决于浏览器供应商,所以任何解决方案都是一种"黑客"。但是,以下一个更可靠:
使用jQuery,您可以在触摸开始/结束时打开/关闭类hover
$(document).ready(function() {
$('.portfolio-item').bind('touchstart touchend', function(e) {
e.preventDefault();
$(this).toggleClass('hover');
});
});
在 CSS 中,您可以添加与现有:hover
具有相同参数的 .hover
类。
相关文章:
- jquery css添加IE8过滤器
- 如何将 CSS 添加到 CKEDITOR
- 将 JavaScript 和 CSS 添加到页脚
- 如何将动画 css 添加到引导下拉列表
- 将 css 添加到 jquery 子元素
- 如何使用jquery或javascript将css添加到伪元素
- 将悬停CSS添加到用javascript处理的表单元格中
- jQuery - 将 css 添加到 localStorage 变量
- 将内联 CSS 添加到 Timnymce 中的 body
- 通过JavaScript CSS添加元素后,hack不起作用
- 将 CSS 添加到文档加载后创建的元素
- 如何使用 JS 或 CSS 添加透明度层
- 使用 jQuery 将 CSS 添加到正文中的 head 标签
- 将 CSS 添加到 Javascript 小部件
- jQuery没有't将CSS添加到附加的输入中
- 将自定义CSS添加到使用Web视图呈现的HTML页面中
- 如何将css添加到json响应中
- 将css添加到已经存储在变量中的jQuery对象的伪元素中
- 将css添加到html中表的动态添加行中
- 为什么jQuery(document).ready不工作?/如何将CSS添加到jQuery中的元素中