我有一个画廊页面,它列出了一个图像网格。单击其中一个图像时,我希望颜色框弹出,并允许用户循环浏览图像。
使用一个简单的颜色框可以在所有浏览器上做到这一点,除了IE。即使在打开颜色框后,IE仍然会跟随链接。
原始代码:
$('a.gallery_image').colorbox({
transition: 'fade',
opacity: 0.7,
speed: 100,
fixed: true,
rel: 'gal_img',
scalePhotos: true,
maxWidth: ($(window).width() / 100) * 85,
maxHeight: ($(window).height() / 100) * 85
});
我已经设法使用以下方法产生了类似的效果:
$('a[rel="gallery_image"]').click(function(e){
e.preventDefault();
$('a[rel="gallery_image"]').colorbox({
maxWidth: '90%',
initialWidth: '200px',
initialHeight: '200px',
speed: 700,
rel: 'gal_img',
overlayClose: false
});
$.colorbox({
href: $(this).attr('href')
});
//return false;
});
然而,IE仍然存在同样的问题。if然后取消注释return false;。IE将不再离开页面,但颜色框不起图库的作用,这意味着用户无法滚动浏览图像。
我不知道如何阻止IE关注这个链接,或者为什么它会出现在第一位。
问题是图像url上有一个itemprop="image"。不太确定为什么会导致这个问题,但删除它已经解决了这个问题。这意味着JS又回到了我原来的样子:
$('a.gallery_image').colorbox({
transition: 'fade',
opacity: 0.7,
speed: 100,
fixed: true,
rel: 'gal_img',
scalePhotos: true,
maxWidth: ($(window).width() / 100) * 85,
maxHeight: ($(window).height() / 100) * 85
});