使用fancybox查看完整大小的图像
我正在尝试开发一些代码,其中jquery获取图像并调整它们以适应父div,可以选择单击图像以使用fancybox以完整大小查看它。 我正在尝试使用“扩展”类来完成所有图像,并且预计每页的图像不会超过该类。
以下是我到目前为止所提出的内容。 图像调整得很好,我可以点击图像来显示fancybox,但它是resize,而不是原始大小。 我有fwidth和fheight作为原始维度的变量,但是指定它们不起作用,因为它是内联的。 所以,我需要使用一个我已经想到的iframe,并试图绕过它包裹一个链接并将链接指定为具有指定尺寸的iframe,为链接抓取.attr(“src”)。 但无论我做什么,它都会转到fancybox中的404页面。 以下是我所拥有的,不确定如何继续,或者我是否以错误的方式思考这个问题?
if($('img.expand').length){ var parentClass = $('img.expand').parent().attr("class"); var fwidth = $('img.expand').attr("width"); var fheight = $('img.expand').attr("height"); if($('img.expand').parents().is('.grid_10')){ $('img.expand').each(function() { var maxwidth = 590; var obj = $('img.expand'); var width = obj.width(); var height = obj.height(); if (width > maxwidth) { //Set variables for manipulation var ratio = (height / width ); var new_width = maxwidth; var new_height = (new_width * ratio); //Shrink the image and add link to full-sized image obj.height(new_height).width(new_width); } }); } $('img.expand').fancybox({ 'transitionIn' : 'fade', 'transitionOut' : 'fade', 'speedIn' : 600, 'speedOut' : 200, 'overlayShow' : false, 'titlePosition' : 'inside' }); }
确保在项目中包含jquery.fancybox-buttons.css和jquery.fancybox-buttons.js。 然后你可以做这样的事情来添加按钮:
$(".fancybox").fancybox({ helpers: { buttons: {} } });
这会将按钮工具栏添加到视口顶部。 如果按下resize按钮,视口将展开以向用户显示完整图像。 因此,如果您上传图像,生成缩略图,并在缩略图上使用fancybox,则用户可以单击缩略图以查看视口,然后他们可以单击视口顶部的按钮以展开视口,以便显示完整的图像。 有些文档可以在这里找到:
http://fancyapps.com/fancybox/#instructions
请查看有关扩展function的部分。
另一个变种示例(fancybox 2.1.5):
$('.fancybox').fancybox({ afterShow: function() { $('').appendTo(this.skin).click(function() { $.fancybox.toggle(); $(this).toggleClass('fancybox-fullsize fancybox-fullsize-r'); }); } });
和css:
.fancybox-fullsize, .fancybox-fullsize-r { position: absolute; width: 36px; height: 36px; top: -18px; left: -18px; z-index: 99999; cursor: pointer; } .fancybox-fullsize { background-image: url(img/fancybox_fullsize.png); } .fancybox-fullsize-r { background-image: url(img/fancybox_fullsize-r.png); }
首先上传您在preferences->images->thickbox_default
设置的相同大小的所有图像
然后上传.jpg文件。
更改/js/jquery/plugins/fancybox/jquery.fancybox.js
的以下值
fitToView:!0
到 – > fitToView:!1
现在试试。