В настоящее время я использую комбинацию миниатюр и кнопок fancybox (только кнопка размера переключателя). По умолчанию кнопки отображаются в центре окна просмотра, я хотел бы переместить это в нижний правый угол изображения, по существу появляясь прикрепленным таким же образом, как кнопка закрытия или чуть ниже правого угла тоже будет хорошо ,Перемещение кнопки «toggle size» fancybox
Я пробовал пробел по отношению к ширине видового экрана, но он не работает. Есть ли способ разместить его относительно изображения?
Я извиняюсь за обилие коды - я понятия не имею, что включать, а что пренебрежение, так что я положил все это в
Если посмотреть на моем сайте (неоконченный, но я загрузил. это поможет), вы можете увидеть проблему в галерее.
Shereewalker.com
Любая помощь будет очень высоко ценится.
Вот мой CSS
#fancybox-buttons {
position: fixed;
left: 0;
width: 100%;
z-index: 8050;}
#fancybox-buttons.top {top: 10px;}
#fancybox-buttons.bottom {bottom: 10px;}
.fancybox-close {
position: absolute;
top: -18px;
right: -18px;
width: 36px;
height: 36px;
cursor: pointer;
z-index: 8040; }
#fancybox-buttons ul {
width: 36px;
height: 36px;
cursor: pointer;
margin: 0 auto;
list-style: none;}
#fancybox-buttons ul li {
float: left;
margin: 0;
padding: 0;}
И мой Javascript
jQuery(document).ready(function ($) {
$(".fancybox").fancybox({
prevEffect : 'none',
nextEffect : 'none',
// API options
helpers : {
title : {
type: 'outside'
},
buttons: {},
thumbs: {
width : 10,
height : 10
}
}
}); // fancybox
}); // ready
И еще Javascript
(function ($) {
//Shortcut for fancyBox object
var F = $.fancybox;
//Add helper object
F.helpers.buttons = {
defaults : {
skipSingle : false, // disables if gallery contains single image
position : 'top', // 'top' or 'bottom'
tpl : '<div id="fancybox-buttons"><ul><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li></ul></div>'
},
list : null,
buttons: null,
beforeLoad: function (opts, obj) {
//Remove self if gallery do not have at least two items
if (opts.skipSingle && obj.group.length < 2) {
obj.helpers.buttons = false;
obj.closeBtn = true;
return;
}
//Increase top margin to give space for buttons
obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
},
onPlayStart: function() {
if (this.buttons) {
this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
}
},
onPlayEnd: function() {
if (this.buttons) {
this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
}
},
afterShow: function (opts, obj) {
var buttons = this.buttons;
if (!buttons) {
this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
buttons = {
prev : this.list.find('.btnPrev').click(F.prev),
next : this.list.find('.btnNext').click(F.next),
play : this.list.find('.btnPlay').click(F.play),
toggle : this.list.find('.btnToggle').click(F.toggle),
close : this.list.find('.btnClose').click(F.close)
}
}
//Prev
if (obj.index > 0 || obj.loop) {
buttons.prev.removeClass('btnDisabled');
} else {
buttons.prev.addClass('btnDisabled');
}
//Next/Play
if (obj.loop || obj.index < obj.group.length - 1) {
buttons.next.removeClass('btnDisabled');
buttons.play.removeClass('btnDisabled');
} else {
buttons.next.addClass('btnDisabled');
buttons.play.addClass('btnDisabled');
}
this.buttons = buttons;
this.onUpdate(opts, obj);
},
onUpdate: function (opts, obj) {
var toggle;
if (!this.buttons) {
return;
}
toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
//Size toggle button
if (obj.canShrink) {
toggle.addClass('btnToggleOn');
} else if (!obj.canExpand) {
toggle.addClass('btnDisabled');
}
},
beforeClose: function() {
if (this.list) {
this.list.remove();
}
this.list = null;
this.buttons = null;
}
};
}(jQuery));
Это сложно, потому что миниатюры fancybox находятся не в одном контейнере с изображением. Это означает, что большие пальцы не знают ширины изображения, поскольку они меняются, поэтому они не смогут правильно выровнять – zgood
Извините, что я искал миниатюры, когда писал этот комментарий, но то же самое относится к кнопке переключения – zgood
У меня есть идея ... эта строка ('this.list = $ (opts.tpl) .addClass (opts.position) .appendTo ('body');') в вашей конфиге конфигурации fancybox для события 'afterShow' ... см., если вы можете '.appendTo ('. fancybox-wrap')' вместо 'body'. Если вы получите кнопку в том же контейнере, то вы можете выровнять ее без проблем – zgood