javascript - 我只需要在窗口滚动时以特定分辨率执行 jquery 代码

标签 javascript jquery html css

我有这个 jquery 代码。我只需要在 > 950px 的分辨率下执行。 如果不是,我会丢失响应式 Logo 。 我想做类似联想主页导航栏的事情。

$(document).ready(function(){
    //left side menu functions End
    //Logo function
    $(document).scroll(function() {
        if ($(document).scrollTop() < 25) {
            $("div.logo").height(200);
            $('div.logo a').css('background-image', 'url(img/logo-clear.png)');
        } else {
            $("div.logo").height(50);
            $('div.logo a').css('background-image', 'url(img/logo-sm.png)');
        }
    });
});

最佳答案

您可以添加和删除 css,而不是更改 css,就像这样

$(document).ready(function(){
    $(document).scroll(function() {
		if(window.innerWidth > 950){
        if ($(document).scrollTop() < 25) {

			$('.logo').addClass('logo-clear');
        } else {
$('.logo').removeClass('logo-clear');
        }			
		}
    });
});
body{
	height: 150vh;
}
.logo{
	background-color: green;
	width: 500px;
	height: 500px;
}
.logo a{
	height: 50px;
}

.logo.logo-clear{
	background-color: yellow;
}
.logo.logo-clear a{
	height: 200px;
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<div class="logo">
	<a href="">hello</a>
</div>	
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>

</body>
</html>

请注意,为了可视化目的,我添加了一些额外的 CSS。也可以在这里查看https://output.jsbin.com/viqebo

关于javascript - 我只需要在窗口滚动时以特定分辨率执行 jquery 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42423581/

相关文章:

javascript - 分配存储在 jQuery.data() 中的对象的各个键

javascript - jquery animate 使用 Promise 调用两次完成

javascript - TinyMCE 和 pluploader 不能一起工作

javascript - 如何使用 jQuery 在数据属性中添加文本?

javascript - + JavaScript 中的日期运算符

javascript - log4js ConsoleAppender 初始化

javascript - 如何验证以多个选项卡编写的表单选项卡?

android - 用于 Firefox 和 Chrome 的 MPEG 4 Visual 的 <video> 标签

c# - ASP .net MVC5 - CSS 样式问题 - "@Html.ValidationMessageFor"

javascript - 比 iframe 更好的替代品来显示选项卡内容?