javascript在屏幕调整大小时更新
javascript update when screen resize
我使用了一些javascript,它允许我的导航背景根据用户向下滚动的程度而改变颜色。这完全可以,但我遇到了一个问题,即每次屏幕大小改变时,java脚本都会更新,因为目前我需要在每次调整大小时刷新页面,以使锚正确工作,因为我相信锚之间的一些div是基于百分比的,因此每次网站调整大小时,高度都会改变,但javascript并没有读到这一点。
$(document).ready(function(){
var scroll_start = 0;
var firstchange = $('.anchor');
var f_offset = firstchange.offset();
$(document).scroll(function() {
scroll_start = $(this).scrollTop();
if(scroll_start > f_offset.top) {
$('.nav').css('background-color', '#fff');
}
else {
$('.nav').css('background-color', '#000');
}
});
您可以在窗口中添加一个事件侦听器来检测屏幕大小的变化,然后在调整窗口大小时触发一个函数。
请参阅这里的jsfiddle演示,展示它的工作原理。
window.addEventListener("resize", winResize);
function winResize (){
var scroll_start = 0;
var firstchange = $('.anchor');
var f_offset = firstchange.offset();
$(document).scroll(function() {
scroll_start = $(this).scrollTop();
if(scroll_start > f_offset.top) {
$('.nav').css('background-color', '#fff');
}
else {
$('.nav').css('background-color', '#000');
}
});
}
window.addEventListener("resize", winResize);
函数winResize(){
var scroll_start = 0;
var firstchange = $('.anchor');
var f_offset = firstchange.offset();
$(document).scroll(function() {
scroll_start = $(this).scrollTop? document.documentElement.scrollTop:document.body.scrollTop();
if(scroll_start > f_offset.top) {
$('.nav').css('background-color', '#fff');
}
else {
$('.nav').css('background-color', '#000');
}
});
}
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 调整窗口大小时更新数据属性
- 元素维度正在DOM中更新,但更改并没有发生;t在调整大小时显示
- javascript在屏幕调整大小时更新
- 获取列高和宽度,并在调整大小时更新
- 来自 Mongo Collection 的条目更新于 24 小时
- 按类划分元素的最大高度不会在屏幕调整大小时更新
- 高图x轴“6小时前”,“5小时前”等.当我的图表正在更新时
- 调整窗口大小时更新窗口内部高度
- 需要使用此JSON文档并使用$.ajax()从API创建每小时一次的天气更新
- jquery:在窗口调整大小时更新元素偏移量顶部
- VBScript检查文件夹中的文件,并通过电子邮件发送过去1小时未更新的文件名
- 通过导入json每小时更新一次Meteor
- Google map API v3:当形状被拖动或调整大小时更新矩形边界
- Jquery - var不会在调整大小时更新,但会被保存多次
- Angular ng在更改数组大小时重复更新视图,但不正确
- 使KineticJS舞台变宽或在调整大小时更新舞台