我正在使用[ScrollIt] [1]插件,该插件会自动在导航元素上添加“活动”类,并且可以轻松创建分页的,垂直滚动的页面。
每当活动类不在href="#home"
的锚元素上时,我想更改导航的不透明度。
但我不知道如何检查当前活动的项目是否是没有此href="#home"
的元素,如果不是添加不透明度的元素。
我已经尝试过的更新:
function myCallBackFunction() {
$('.navbar').css("opacity",this.is('[href="#home"]') ? 1 : 0);
}
var updateActive = function(ndx,myCallbackFunction) {
if(settings.onPageChange && ndx && (active != ndx)) settings.onPageChange(ndx);
active = ndx;
$('[data-scroll-nav]').removeClass(settings.activeClass);
$('[data-scroll-nav=' + ndx + ']').addClass(settings.activeClass);
myCallbackFunction.call($('[data-scroll-nav=' + ndx + ']'));
};
我收到此错误:Uncaught TypeError: Cannot call method 'call' of undefined
有关我如何做到这一点的任何建议?
答案 0 :(得分:0)
如果我理解您正在寻找的行为,请尝试:
$('.navbar').css("opacity",$('[data-scroll-nav][href="#home"].active').length?0:1);
答案 1 :(得分:0)
当你打电话给你回调时,你可以像这样使用.call()
:
var updateActive = function(ndx, myCallbackFunction) {
//the original code
myCallbackFunction.call($('[data-scroll-nav=' + ndx + ']'));
}
然后在您的函数中,检查this
:
function myCallBackFunction() {
$('.navbar').css("opacity",this.is('[href="#home"]') ? 1 : 0);
}