当鼠标悬停在子元素上时,我正在更改父div的背景。这应该只适用于720px及更大的屏幕尺寸,所以我使用它:
if ($(window).width() > 720) {
$('div a').hover(
function () {
$('div').css("background-image", 'url(image-hover.png)');
},
function () {
$('div').css("background-image", 'url(image.png)');
});
}
但背景在较小的屏幕上仍然会发生变化。我错过了什么?
答案 0 :(得分:1)
我建议将宽度检查放在事件处理程序中而不是外部。这样,您将在页面加载时测试当前视口,而不是视口。
伪示例:
$([selector]).on('mouseleave', function () {
if ($(window).width() > 720) {
...
}
}).on('mouseenter', function () {
if ($(window).width() > 720) {
...
}
});
答案 1 :(得分:0)
我应该查看一下您的完整代码,以了解您的代码无效的原因。
但我不明白你为什么不使用普通的css悬停功能。
为什么不添加
@media screen and (min-width: 720px) {
.div a {
background: url(image.png);
}
.div a:hover {
background: url(image-hover.png);
}
}
到您的css文件?
答案 2 :(得分:-1)
试试这个" screen.width"
<script>
document.getElementById("demo").innerHTML =
"Screen width is " + screen.width;
</script>
if (screen.width > 720) {
$('div a').hover(
function () {
$('div').css("background-image", 'url(image-hover.png)');
},
function () {
$('div').css("background-image", 'url(image.png)');
});
}