我喜欢评论中提供的解决方案,但进行了一些小的更改以使代码更通用。这个想法是所有颜色框 css 文件都包含在“head”中,但被禁用。然后当打开一个colorbox窗口时,只启用对应主题的css文件。
有很多方法可以实现这一目标,其中之一:
function useColorboxTheme() {
var selectedTheme = $(this).attr("data-theme");
$(".colorboxTheme").attr("disabled", "disabled");
$("#" + selectedTheme).removeAttr("disabled");
}
function defaultColorboxTheme() {
$(".colorboxTheme").attr("disabled", "disabled");
$(".colorboxTheme.default").removeAttr("disabled");
}
$(document).ready(function(){
$("a.colorbox").colorbox({
onOpen: useColorboxTheme,
onClosed: defaultColorboxTheme
});
});
useColorboxTheme()data-theme
在您的颜色框锚点中查找属性,例如:
<a data-theme="theme1" class="colorbox" title="This is pic1" href="http://pics/pic1.jpg"></a>
请注意,“theme1”对应于头部中“链接”标签的 id。例如:
<link id="theme1" class="colorboxTheme" rel="stylesheet" type="text/css" href="css/colorbox/example1/colorbox.css">
您可能希望将其调整为您正在使用的代码或 CMS,但这给出了总体思路。这是一个小提琴。
但是请注意,这不是 colorbox 的预期用途。您必须在所有浏览器中对其进行彻底测试,以确保您不会在使用多个主题时遇到问题。我注意到的一个怪癖是示例 5 主题需要在其他主题之前链接,以便所有主题一起工作。