Getting fancybox and hover remove icon to work on the same image

落花浮王杯 提交于 2019-12-11 23:24:31

问题


I'm using the tips on this question Overlay thumbnail with remove image button? to get a overlay hover remove icon to be shown on thumbnails on my page.

But I'm also using fancybox and I can't seem to get both working at the same time. Because they both need the <a> element.

Right now, this is my code.

<div class="image-thumb" style="display: inline-block; background-image: url('<?php echo base_url().$path.$thumb; ?>');" align="center">
<a class="fancybox" href="<?php echo base_url().$path.$file->filename; ?>" rel="galery1" title="<?php echo $file->description; ?>">
    &nbsp;
</a><br>
<?php echo $file->description; ?></strong>
</div>

The CSS:

.image-thumb { 
position: relative; 
width: 150px;
height: 150px; 
/* apply background-image url inline on the element since it is part of the content */
background: transparent url() no-repeat center center;
}

.image-thumb a { 
display: none;
position: absolute; 
top: 2px;  /* position in bottom right corner, assuming image is 16x16 */
left: 126px; 
width: 22px; 
height: 22px; 
background: transparent url('/path/to/remove-icon.gif') no-repeat 0 0;
}   

.image-thumb:hover a { 
display: block;
}

In the <a> element, if I set the class to fancybox, it works, and if I remove it, the hover icon works. Out of ideas to get them both working. Any help would be great.


回答1:


...Because they both need the <a> element

Actually, you can bind fancybox to any html element other than <a> using the special fancybox attributes data-fancybox-* so get rid of the class fancybox in your <a> tag and add it to its parent <div class="image-thumb fancybox"...

Then set the href, title and group attributes like :

<div class="image-thumb fancybox" data-fancybox-href="<?php echo base_url().$path.$file->filename; ?>" data-fancybox-group="gallery1" data-fancybox-title="<?php echo $file->description; ?>" style="...">
    <a>&nbsp;</a><strong><?php echo $file->description; ?></strong>
</div>

See JSFIDDLE




回答2:


Can you try,

.image-thumb a.fancybox { 
display: none;
position: absolute; 
top: 2px;  /* position in bottom right corner, assuming image is 16x16 */
left: 126px; 
width: 22px; 
height: 22px; 
background: transparent url('/path/to/remove-icon.gif') no-repeat 0 0;
}   

.image-thumb:hover a.fancybox { 
display: block;
}

and just keep fancybox as the class name for your a element.



来源:https://stackoverflow.com/questions/20749253/getting-fancybox-and-hover-remove-icon-to-work-on-the-same-image

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!