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){…条件添加到我的中,现在应该可以工作了。感谢提醒!