Javascript 删除移动设备上的:悬停事件
我的Javascript 删除移动设备上的:悬停事件,javascript,jquery,css,sass,Javascript,Jquery,Css,Sass,我的:hover事件正在网站上运行,但当您在移动设备上使用该系统时,我遇到了一个问题 有没有办法在css或js中删除它?我试过很多东西,但运气不好 我尝试了Modernizer.com和媒体查询,但没有成功 我的sass代码: ul { li { padding: 20px; &:hover { background-color: $red; color: $black; } } } @media
:hover
事件正在网站上运行,但当您在移动设备上使用该系统时,我遇到了一个问题
有没有办法在css或js中删除它?我试过很多东西,但运气不好
我尝试了Modernizer.com和媒体查询,但没有成功
我的sass代码:
ul {
li {
padding: 20px;
&:hover {
background-color: $red;
color: $black;
}
}
}
@media (max-width: $screen-sm-min) {
ul {
li {
&:hover {
color: inherit;
cursor: pointer;
}
}
}
}
$screen-sm-min: 768px;
媒体查询:
ul {
li {
padding: 20px;
&:hover {
background-color: $red;
color: $black;
}
}
}
@media (max-width: $screen-sm-min) {
ul {
li {
&:hover {
color: inherit;
cursor: pointer;
}
}
}
}
$screen-sm-min: 768px;
sass mq变量:
ul {
li {
padding: 20px;
&:hover {
background-color: $red;
color: $black;
}
}
}
@media (max-width: $screen-sm-min) {
ul {
li {
&:hover {
color: inherit;
cursor: pointer;
}
}
}
}
$screen-sm-min: 768px;
您可以将CSS媒体查询用于交互功能,但它们相对较新,iOS9+和Android 5+:
您可以使用仅应用此功能可用的:hover
样式
/*:悬停现在只能在Edge、Chrome、Safari 9+中使用*/
@媒体(悬停:悬停){
.您的选择器:悬停{
颜色:红色;
}
}
或者,如果您现在需要更广泛的支持,请在可能的情况下仅删除
:hover
:
/*:将在iOS 9+和Android 5+中删除悬停*/
.您的选择器:悬停{
颜色:红色;
}
@媒体(悬停:无){
.您的选择器:悬停{
颜色:旧颜色;
}
}
如果您想要更广泛的支持,您需要通过javascript检测触摸功能。一个相当标准的方法是:
/*将类添加到*/
var isTouch='ontouchstart'在窗口中;
document.documentElement.className+=isTouch?'touch':'no touch';
/*仅在无触摸类存在时使用悬停*/
1.禁止触摸{
.您的选择器:悬停{
颜色:红色;
}
}
将最后一个解决方案与代码一起使用:
ul {
li {
padding: 20px;
.no-touch &:hover {
background-color: $red;
color: $black;
}
}
}
您可以将CSS媒体查询用于交互功能,但它们相对较新,iOS9+和Android 5+:
您可以使用仅应用此功能可用的:hover
样式
/*:悬停现在只能在Edge、Chrome、Safari 9+中使用*/
@媒体(悬停:悬停){
.您的选择器:悬停{
颜色:红色;
}
}
或者,如果您现在需要更广泛的支持,请在可能的情况下仅删除
:hover
:
/*:将在iOS 9+和Android 5+中删除悬停*/
.您的选择器:悬停{
颜色:红色;
}
@媒体(悬停:无){
.您的选择器:悬停{
颜色:旧颜色;
}
}
如果您想要更广泛的支持,您需要通过javascript检测触摸功能。一个相当标准的方法是:
/*将类添加到*/
var isTouch='ontouchstart'在窗口中;
document.documentElement.className+=isTouch?'touch':'no touch';
/*仅在无触摸类存在时使用悬停*/
1.禁止触摸{
.您的选择器:悬停{
颜色:红色;
}
}
将最后一个解决方案与代码一起使用:
ul {
li {
padding: 20px;
.no-touch &:hover {
background-color: $red;
color: $black;
}
}
}
虽然您已经尝试过媒体查询,但我还是会让您知道这是可能的。请共享您的代码我用代码编辑我的问题。为什么您不只将悬停样式应用于所需的宽度,而不是将其应用于所有宽度,然后尝试撤消它们?尽管您已经尝试过媒体查询,尽管如此,我还是会让你知道这是可能的。请分享你的代码。我用代码编辑我的问题。你为什么不只在你想要的宽度上应用悬停样式,而不是在所有宽度上应用它们,然后尝试撤销它们?我学到了一些新东西-谢谢。从未使用媒体查询的互动功能-我将从现在开始!我学到了一些新东西——谢谢。从未使用媒体查询的互动功能-我将从现在开始!