我正在使用 jquery Isotope 创建一个投资组合画廊,几乎一切都按预期工作,我唯一想改变的是打开内容的行为。现在,当您单击照片时,内容框会展开并显示带有一些文本的更大图像,问题是当您再次单击内容框(.item)时,内容会恢复到原始大小,我不想要那是因为一些盒子包含不止一个带有颜色框的图像。
最好的解决方案是在“大”容器上添加一个关闭按钮,而不是使用整个盒子区域,但事实证明这超出了我的处理能力。
这是我用来控制框大小和点击检测的代码:
$(function() {
var $container = $('#pageWrapper'),
$items = $('.item');
$('#filter').find('a').click(function() {
// get the href attribute
var filterName = '.' + $(this).attr('href').slice(1);
filterName = filterName === '.show-all' ? '*' : filterName;
$container.isotope({
filter: filterName
});
return false;
});
// change size of clicked element
$container.find('.item').live('click', function() {
if ($(this).is('.large')) {
jQuery('.item-content', this).fadeToggle("fast", "linear");
jQuery('.thumb', this).fadeToggle("fast", "linear");
jQuery('h3', this).fadeToggle("fast", "linear");
$(this).toggleClass('large');
$container.isotope('reLayout');
} else {
jQuery('.large > .item-content');
jQuery('.large > .thumb');
jQuery('.large > h3');
$container.find('.large').removeClass('large');
jQuery('.item-content', this).fadeToggle("fast", "linear");
jQuery('.thumb', this).fadeToggle("fast", "linear");
jQuery('h3', this).fadeToggle("fast", "linear");
$(this).toggleClass('large');
$container.isotope('reLayout');
}
});
// switch selected class on buttons
$('#categories').find('.option-set a').click(function() {
var $this = $(this);
// don't proceed if already selected
if (!$this.hasClass('selected')) {
$this.parents('.option-set').find('.selected').removeClass('selected');
$this.addClass('selected');
}
});
// isotope behavior
$container.isotope({
itemSelector: '.item',
masonry: {
columnWidth: 10
},
知道如何在单击时阻止“大”框关闭并添加一个按钮来关闭它而不是整个框吗?
提前致谢!!