Javascript 修改文件jquery.fancybox-1.3.4.js以重写_draw函数,jquery
我正在做一个基于fancybox的图库-实际上我已经修改了field来实现我所需要的,我已经完成了,我发现的最后一个问题是在代码的这一部分:Javascript 修改文件jquery.fancybox-1.3.4.js以重写_draw函数,jquery,javascript,jquery,html,fancybox,Javascript,Jquery,Html,Fancybox,我正在做一个基于fancybox的图库-实际上我已经修改了field来实现我所需要的,我已经完成了,我发现的最后一个问题是在代码的这一部分: } else { fx.prop = 0; $(fx).animate({prop: 1}, { duration : currentOpts.changeSpeed, step : _draw, complete : finish_resizing
} else {
fx.prop = 0;
$(fx).animate({prop: 1}, {
duration : currentOpts.changeSpeed,
step : _draw,
complete : finish_resizing
});
Draw函数位于此处,因此您可以看到:
_draw = function(pos) {
var dim = {
width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10),
height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10),
top : parseInt(final_pos.top, 10),
left : parseInt(final_pos.width, 10)
};
if (typeof final_pos.opacity !== 'undefined') {
dim.opacity = pos < 0.8 ? 0.8 : pos;
}
wrap.css(dim);
content.css({
'width' : limit.width - currentOpts.padding * 2,
'height' : limit.height - (titleHeight * pos) - currentOpts.padding * 2
});
},
还有这个(但我不认为这会影响它):
$('body')。追加(
tmp=$(''),
加载=$(''),
叠加=$(''),
限额=$('')
);
wraplimit=$('').append(limit).appendTo('body');
thebox=$('').append('').appendTo(覆盖)
wrap=$('').append().appendTo(限制);
外部=$('')
.append(“”)
.附件(包装);
听起来您想为“下一个”和“上一个”添加与主动画不同的自定义动画?您是否检查了文档并使用了next和prev命令
如果你想要的是你贴在小提琴上的效果,那么我建议你使用下面的讨厌的黑客(或者扔掉fancybox,从盒子里拿出一个支持这种效果的)
1) 在触发器上启用fancybox
2) 使用jQuery或其他工具在div中创建缩略图,然后将该div附加到已创建的fancybox元素的底部(位于主体底部)
3) 将创建的缩略图连接起来,使用现有的fancybox api进行下一个/上一个/特定等操作。
4) 避免触碰js本身。编辑开源文件并不是实现某些目标的好方法。这些文件是由许多开发人员编写的,我认为他们知道一些东西。避免像Ahmet说的那样做。你试过版本2吗?你可以在这里发布:GitHub听起来很简单,但是我已经在这个文件周围写了很多其他的东西,并且=(这将是一个令人难以置信的工作量,我希望这不是真正的解决方案..也许如果有人能告诉我如何在fancybox2()上实现这一点,这个例子中的问题(我用jquerytools制作的,就是我不能插入上一个或下一个按钮来滚动主图像,这几乎和我在这里遇到的问题相同ol@AhmetCanGüven-我不得不不同意不修改的建议。这种封闭的思维水平并不是那些“大量开发人员”的原因处于编写插件的水平……如果你想争辩说它可能会降低你的项目的可维护性,那就太棒了,但是不要散布无知和“黑盒开源项目”的神话。
_draw = function(pos) {
var dim = {
width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10),
height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10),
top : parseInt(final_pos.top, 10),
left : parseInt(final_pos.width, 10)
};
if (typeof final_pos.opacity !== 'undefined') {
dim.opacity = pos < 0.8 ? 0.8 : pos;
}
$('body').append(
tmp = $('<div id="fancybox-tmp"></div>'),
loading = $('<div id="fancybox-loading"><div></div></div>'),
overlay = $('<div id="fancybox-overlay"></div>'),
limit = $('<div id="limit"></div>')
);
wraplimit = $('<div id="wraplimit"></div>').append( limit ).appendTo('body');
thebox = $('<div id="thebox"></div>').append('<div id="comrigtt"></div>').appendTo( overlay )
wrap = $('<div id="fancybox-wrap"></div>').append().appendTo( limit );
outer = $('<div id="fancybox-outer"></div>')
.append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>')
.appendTo( wrap );