如何使彩色盒响应

vin*_*569 39 jquery colorbox responsive-design

我在响应式网站中使用colorbox.

我有一个请求:我希望Colorbox自动调整屏幕/移动设备的大小和方向:如果我改变屏幕/移动设备的方向(即如果我旋转我的手机以调整水平和垂直图片到屏幕尺寸,我希望Colorbor自动调整到屏幕的新尺寸/方向).目前,Colorbox仅在新图片的加载时自动调整(例如幻灯片放映).

我在封闭的谷歌小组中问了这个问题:

https://groups.google.com/group/colorbox/browse_thread/thread/85b8bb2d8cb0cc51?hl=fr

我在github上创建了两个功能请求:

https://github.com/jackmoore/colorbox/issues/158

但我没有任何回应,所以我尝试Stack Overflow ...

有没有人知道是否有可能让ColorBox根据方向变化自动调整大小(可能在变通方法中使用回调函数)?

在此先感谢任何帮助.

Nic*_*ier 58

我在colorbox初始化时使用maxWidthmaxHeight选项解决了它,如开发人员网站上所述:

jQuery(*selector*).colorbox({maxWidth:'95%', maxHeight:'95%'});
Run Code Online (Sandbox Code Playgroud)

您还可以在调整窗口大小或更改移动设备的方向时添加此代码段以调整颜色框的大小:

/* Colorbox resize function */
var resizeTimer;
function resizeColorBox()
{
    if (resizeTimer) clearTimeout(resizeTimer);
    resizeTimer = setTimeout(function() {
            if (jQuery('#cboxOverlay').is(':visible')) {
                    jQuery.colorbox.load(true);
            }
    }, 300)
}

// Resize Colorbox when resizing window or changing mobile device orientation
jQuery(window).resize(resizeColorBox);
window.addEventListener("orientationchange", resizeColorBox, false);
Run Code Online (Sandbox Code Playgroud)

最终,取代的jQuery$.

  • @Shabith你错过了那里的花括号 - 它应该是`jQuery.colorbox.resize({width:'90%',height:'90%'})` (7认同)
  • 加载方法不再可公开访问.因此,使用`jQuery.colorbox.resize()`方法代替`load`方法,并将宽度和高度作为对象传递.例如:`jQuery.colorbox.resize(width:'90%',height:'90%')` (5认同)

inp*_*put 35

我在这里尝试了很多解决方案,但是来自github上的@berardig的以下内容对我来说非常好

var cboxOptions = {
  width: '95%',
  height: '95%',
  maxWidth: '960px',
  maxHeight: '960px',
}

$('.cbox-link').colorbox(cboxOptions);

$(window).resize(function(){
    $.colorbox.resize({
      width: window.innerWidth > parseInt(cboxOptions.maxWidth) ? cboxOptions.maxWidth : cboxOptions.width,
      height: window.innerHeight > parseInt(cboxOptions.maxHeight) ? cboxOptions.maxHeight : cboxOptions.height
    });
});
Run Code Online (Sandbox Code Playgroud)

资料来源:https://github.com/jackmoore/colorbox/issues/183#issuecomment-42039671

  • 这应该是公认的答案。它很简单,没有技巧,它提供了所有所需的选项。很长时间以来,我一直在响应式项目中使用colorbox-这种解决方案胜过其他所有解决方案。谢谢! (2认同)
  • 您可以通过为maxWidth / maxHeight使用整数来使其更短。因此parseInt变得多余而又不损失功能。 (2认同)

chr*_*rth 9

看起来已经讨论过这个问题并且在作者的github上提供了工作解决方案

https://github.com/jackmoore/colorbox/issues/158


Mil*_*ern 2

您应该考虑使用 @media query colorBox css 文件进行“框架”,就像处理其余 css 一样。