Javascript Jquery粘性导航在满足特定条件时启动
我已经成功地创建了一个粘性导航,效果非常好。但是,我希望在浏览器低于或等于770px时启动或运行粘性导航 到目前为止,这是我的代码Javascript Jquery粘性导航在满足特定条件时启动,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经成功地创建了一个粘性导航,效果非常好。但是,我希望在浏览器低于或等于770px时启动或运行粘性导航 到目前为止,这是我的代码 $j = jQuery.noConflict(); $j(document).ready(function() { var navOffset = $j(".main-nav").offset().top; var wi = $j(window).width(); var sticky; $j(".responsive-icon").wrapInn
$j = jQuery.noConflict();
$j(document).ready(function() {
var navOffset = $j(".main-nav").offset().top;
var wi = $j(window).width();
var sticky;
$j(".responsive-icon").wrapInner('<div class="value"></div>');
$j(".main-nav").wrap('<div class="nav-placeholder"></div>');
$j(".nav-placeholder").height($j(".main-nav").outerHeight());
function stickyFunction() { /*Sticky navigation function*/
sticky = $j(window).scroll(function() {
var scrollPos = $j(window).scrollTop();
if (scrollPos >= navOffset) {
$j(".main-nav").attr("id", "fixed-menu");
} else {
$j(".main-nav").removeAttr("id");
}
});
return sticky;
}
if(wi <= 770) { /* Suppose to Fires up immediately if the browser is lower than 770px */
stickyFunction();
}
$j(window).resize(function() { /*Suppose to fires up if the browser resize*/
if(wi <= 770) {
stickyFunction();
}
});
});
当浏览器宽度满足条件时,如何调用stickyfunction来运行
谢谢 只需将sticky用作滚动事件,并尝试在窗口调整大小事件中使用滚动事件,这样就不会在调整大小窗口中触发函数。。 用这个 而不是
function stickyFunction() { /*Sticky navigation function*/
sticky = $j(window).scroll(function() {
var scrollPos = $j(window).scrollTop();
if (scrollPos >= navOffset) {
$j(".main-nav").attr("id", "fixed-menu");
} else {
$j(".main-nav").removeAttr("id");
}
});
return sticky;
}
并将事件设置为窗口滚动
$j(window).on('scroll', stickyFunction);
万一
$j(window).on('resize',function() { /*Suppose to fires up if the browser resize*/
wi = $j(window).width();
if(wi <= 770) {
stickyFunction();
}
});
谢谢你的简化和更好的逻辑。我希望仅当浏览器低于770px时才运行此效果。@rodge调整大小时,您应该计算window.width。。请参阅更新的答案谢谢!问题是,在调整浏览器大小时,宽度会更新。
$j(window).on('resize',function() { /*Suppose to fires up if the browser resize*/
wi = $j(window).width();
if(wi <= 770) {
stickyFunction();
}
});