我想在这里添加一个答案。我需要通过考虑不同的断点宽度来改变colorbox的响应,并根据窗口宽度改变popover的宽度。基本上,当在浏览器中显示时,我可以在彩盒的左侧和右侧留出空白空间,但不能在手机/平板电脑上显示空白空间。
我已经使用了应答的概念就在这个岗位(https://stackoverflow.com/a/23431190/260665),但做一些修改:
/**
* Raj: Used basic source from here: https://stackoverflow.com/a/23431190/260665
**/
// Make sure the options are sorted in descending order of their breakpoint widths
var cboxDefaultOptions =
[
{
breakpointMinWidth: 1024,
values: {
width : '70%',
maxWidth : '700px',
}
},
{
breakpointMinWidth: 640,
values: {
width : '80%',
maxWidth : '500px',
}
},
{
breakpointMinWidth: 320,
values: {
width : '95%',
maxWidth : '300px',
}
}
];
$(window).resize(function(){
// alert (JSON.stringify($.colorbox.responsiveOptions));
// var respOpts = $.colorbox.attr('responsiveOptions');
var respOpts = $.colorbox.responsiveOptions;
if (respOpts) {
var breakpointOptions = breakpointColorboxOptionsForWidth (window.innerWidth);
if (breakpointOptions) {
$.colorbox.resize({
width: window.innerWidth > parseInt(breakpointOptions.values.maxWidth) ? breakpointOptions.values.maxWidth : breakpointOptions.values.width,
});
}
}
});
function breakpointColorboxOptionsForWidth (inWidth) {
var breakpointOptions = null;
for (var i=0; i<cboxDefaultOptions.length; i++) {
var anOption = cboxDefaultOptions[i];
if (inWidth >= anOption.breakpointMinWidth) {
breakpointOptions = anOption;
break;
}
}
return breakpointOptions;
}
用法:
$.colorbox.responsiveOptions = cboxDefaultOptions;
当制备颜色框对象只需添加这种额外属性。我们还可以配置cboxDefaultOptions或向$.colorbox.responsiveOptions
提供不同的自定义值对象,以便在需要时加载不同的断点。
我知道你在十月份就回答了这个问题,但是你会澄清一下你的意思吗? – Duncanmoo