Jquery Fancybox动态宽度/高度问题-如何在默认值中编写代码以供参考?

Jquery Fancybox动态宽度/高度问题-如何在默认值中编写代码以供参考?,jquery,fancybox,fancybox-2,Jquery,Fancybox,Fancybox 2,我只是想实现这一点: 但是我想知道我必须在fancybox声明中添加什么,以便它有默认的宽度/高度可以依赖,以防用户没有像上面的例子那样通过URL中的宽度/高度(人们忘记或弄乱了拼写或其他东西)。。。正在思考如何防止类似的问题?使用fitToView以及minWidth、minHeight、maxWidth和maxHeight来设置回退大小,如: $(".fancybox") .attr('rel', 'gallery') .fancybox({ type: 'iframe',

我只是想实现这一点:


但是我想知道我必须在fancybox声明中添加什么,以便它有默认的宽度/高度可以依赖,以防用户没有像上面的例子那样通过URL中的宽度/高度(人们忘记或弄乱了拼写或其他东西)。。。正在思考如何防止类似的问题?

使用
fitToView
以及
minWidth
minHeight
maxWidth
maxHeight
来设置回退大小,如:

$(".fancybox")
.attr('rel', 'gallery')
.fancybox({
    type: 'iframe',
    autoSize : false,
    beforeLoad : function() {                    
        this.width = parseInt(this.href.match(/width=[0-9]+/i)[0].replace('width=',''));  
        this.height = parseInt(this.href.match(/height=[0-9]+/i)[0].replace('height=',''));
    },
    // fallback size
    fitToView: false, // set the specific size without scaling to the view port
    minWidth : 200, // or whatever, default is 100
    minHeight: 300, // default 100
    maxWidth : 800, // default 9999
    maxHeight: 900  // default 9999
});
另一方面,为了避免人们弄乱url,您可以使用(HTML5)
data-*
属性传递这些值,如:

<a class="fancybox" href="http://fiddle.jshell.net/YtwCt/show/" data-width="500" data-height="200">Open 500x200</a>

选中此,firs链接具有
数据-*
属性,并相应地获取大小。第二个则不根据回退值获取大小

使用
fitToView
以及
minWidth
minHeight
maxWidth
maxHeight
来设置回退大小,如:

$(".fancybox")
.attr('rel', 'gallery')
.fancybox({
    type: 'iframe',
    autoSize : false,
    beforeLoad : function() {                    
        this.width = parseInt(this.href.match(/width=[0-9]+/i)[0].replace('width=',''));  
        this.height = parseInt(this.href.match(/height=[0-9]+/i)[0].replace('height=',''));
    },
    // fallback size
    fitToView: false, // set the specific size without scaling to the view port
    minWidth : 200, // or whatever, default is 100
    minHeight: 300, // default 100
    maxWidth : 800, // default 9999
    maxHeight: 900  // default 9999
});
另一方面,为了避免人们弄乱url,您可以使用(HTML5)
data-*
属性传递这些值,如:

<a class="fancybox" href="http://fiddle.jshell.net/YtwCt/show/" data-width="500" data-height="200">Open 500x200</a>

选中此,firs链接具有
数据-*
属性,并相应地获取大小。第二个不是这样,而是根据回退值来获取大小,我使用了这个JSFIDLE代码,而不是您建议的作为站点管理员的代码,更喜欢在URL中传递宽度/高度,而不是数据宽度和数据高度。方法的问题是
this.width=parseInt(this.href.match(/width=[0-9]+/I)[0].替换('width=','')是指如果没有传递参数,它将失败。你需要先评估他们是否存在明白了!我补充说。。。如果(this.href.indexOf(“width”)>=0){…那么现在应该可以了。感谢大家的提醒!我使用了这个JSFIDLE代码,而不是你建议的,因为网站管理员更喜欢在URL中传递width/height,而不是数据width和data-height。你的方法的问题是
this.width=parseInt(this.href.match(/width=[0-9]+/i)[0].replace('width=','');
是指如果未传递参数,则它将失败。如果参数存在,则需要首先求值。明白了!我将…if(this.href.indexOf(“width”)>=0){…条件添加到我的中,现在应该可以工作了。感谢提醒!