Javascript 尝试使用jQuery更改Wordpress粘性徽标图像src
我在wordpress上,我想在标题变粘时更改默认徽标:Javascript 尝试使用jQuery更改Wordpress粘性徽标图像src,javascript,jquery,sticky,Javascript,Jquery,Sticky,我在wordpress上,我想在标题变粘时更改默认徽标: 类是粘性的,这很重要 (我还在使用小插件进行音译——西里尔语到拉丁语,同时我可以根据当前字母表更改粘性徽标,因为body有classbody.cir或body.lat如果是西里尔语/拉丁语) css目标很好,例如: body.lat .is-sticky img.kad-standard-logo{ border: solid 1px red; } body.cir .is-sticky img.kad-standard-logo{
类
是粘性的,这很重要
(我还在使用小插件进行音译——西里尔语到拉丁语,同时我可以根据当前字母表更改粘性徽标,因为body
有classbody.cir
或body.lat
如果是西里尔语/拉丁语)
css目标很好,例如:
body.lat .is-sticky img.kad-standard-logo{
border: solid 1px red;
}
body.cir .is-sticky img.kad-standard-logo{
border: solid 1px blue;
}
.is-sticky img.kad-standard-logo{
border: solid 1px red;
}
或者更准确地说,(不要与我的字母表类混淆)
,。是粘性的吗?
类显示在页面滚动上,然后我想更改徽标
添加边框,例如:
body.lat .is-sticky img.kad-standard-logo{
border: solid 1px red;
}
body.cir .is-sticky img.kad-standard-logo{
border: solid 1px blue;
}
.is-sticky img.kad-standard-logo{
border: solid 1px red;
}
没关系
我不想使用:
content: url(logo.png)
background: url(logo.png)
我正试图像这样更改徽标,但不起作用:
jQuery(function($) {
var cyril = "https://mysite.domain/images/logo_sticky-cir.png";
var lats ="https://mysite.domain/images/logo_sticky-lat.png" ;
var logoDefault = $('.kad-standard-logo').attr('src'); //Wordpress theme options default logo
$('body.cir .is-sticky img.kad-standard-logo').attr('src', cyril);
$('body.lat .is-sticky img.kad-standard-logo').attr('src', lats);
});
可能类.is sticky
存在一些冲突,因为它来自sticky header的主脚本或其他内容,并且何时从脚本中排除:
$('body.cir img.kad-standard-logo').attr('src', cyril);
$('body.lat img.kad-standard-logo').attr('src', lats);
或者只是
$('img.kad-standard-logo').attr('src', lats);
它起作用了
但我需要的是是粘性的
我希望这个描述是可以理解的
有什么建议吗
谢谢。这个JS是在pageload上执行的,因为您使用的是jQuery(function(){})
表单,它实际上会一直等到DOMContentLoaded
事件被触发。基本上,只有当您加载页面时img已经粘滞时,此代码才会更改某些内容。它不是,所以没有什么可以改变的。这就是为什么当你把放在粘性的上时,它会工作的原因
要实现您想要的功能,您需要侦听类更改,或者绑定自定义事件并触发它:
我个人建议使用容器和CSS背景图像
来实现这一点,无论如何,这会更快、更高性能。您可以随意使用CSS sugar,比如过渡:背景图像0.2s,轻松使用,这样更改就不会出现波动。我强烈建议使用这种方法,而不是使用昂贵的JS加载页面
例:
嘿,OP,欢迎来到SO。你能给我一个什么样的标志元素看起来像一个例子,甚至只是发送网站,让我们可以有一个例子工作了?你写的代码表面上看起来还不错,我看不出有什么明显的错误。好的,这里有链接,这个网站只是为了测试,当然感谢@Christian的欢迎!克里斯蒂安,谢谢你澄清这一点。当然,它可以通过css来实现,我只是在探索可能性并学习JS。我有另一个代码可以很好地工作,但是我提供的这个代码对我来说似乎有点“优雅”@arteaster是的,不幸的是,没有(建议的)方法告诉jQuery,“嘿,注意这个元素,如果元素是Y,就执行X”。CSS将允许您这样做,我强烈建议您采用这种方法。