javascript - 尝试使用 jQuery 更改 Wordpress 粘性徽标图像 src
问题描述
我在 wordpress 上,我想在标题变粘时更改默认徽标:出现
类.is-sticky
,这很重要。
(另外我正在使用小插件进行音译 - 西里尔文到拉丁文脚本,同时我将能够根据当前字母更改粘性徽标,因为body
有类body.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;
}
或者更准确地说,(not to be confused with my alphabet classes)
类.is-sticky
出现在页面滚动上,然后我想更改徽标,
添加边框例如:
.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
存在一些冲突,因为它来自粘性标题的主脚本或其他任何内容以及何时从脚本中排除:
$('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);
有用,
但我需要什么时候.is-sticky
我希望这个描述是可以理解的,
任何建议,请,
谢谢。
解决方案
此 JS 在页面加载时执行,并且由于您使用的是jQuery(function(){})
表单,它实际上会等到DOMContentLoaded
事件被触发。基本上,只有当您加载页面时 img已经粘滞时,此代码才会更改某些内容。它不是,所以没有什么可以改变的。这就是为什么当您放下 时.is-sticky
,它会起作用。
为了完成你想要的,你需要监听类的变化,或者绑定一个自定义事件并触发它:等到 HTML 元素得到一个类然后做一些事情
我个人建议使用容器和 CSSbackground-image
来执行此操作,无论如何这会更快,性能更高。随意使用 CSS 糖,transition: background-image 0.2s ease-in
这样变化不会起伏不定。我强烈建议走这条路线,而不是使用昂贵的 JS 加载页面。
前任。:
body img.kad-standard-logo {
transition: background-image 0.2s ease-in;
}
body.lat .is-sticky img.kad-standard-logo {
background-image: url(https://mysite.domain/images/logo_sticky-lat.png);
}
body.cir .is-sticky img.kad-standard-logo {
background-image: url(https://mysite.domain/images/logo_sticky-cir.png);
}
推荐阅读
- angular - 如何使用角度事件在文本字段中显示字符串的长度。?
- java - Java 使用 2 种不同的对象类型作为类中的字段
- sql - 在 oracle 中翻译命令
- python - 调用异步函数时如何防止上下文切换?
- apache-poi - DVConstraint.createNumericConstraint 不起作用
- bash - Brew 显示弹性搜索服务器正在运行,但对弹性搜索服务器的请求一直失败
- javascript - 错误:React.js 修改 css 变量
- list - Fortran 中的排序函数
- azure - 当我们使用市场中发布的解决方案模板部署 VM 时,为什么 Azure 要求创建新的或空的资源组?
- wordpress - 我在 mmy 网站 roundabouttech.com 上完成了 ssl。但是