У меня есть следующий HTML:Наложение изображений парения терпит неудачу после парения действия по ссылке
<div class="post-box">
<a href='<?php the_permalink() ?>'>
<span class='overlay'></span>
<div class='post-img' style="background-image:url('<?php echo wp_get_attachment_url(get_post_thumbnail_id($post->ID)) ?>');"></div>
</a>
<a class='post-title' href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<p><?php the_excerpt(); ?></p>
<a class='read-more' href="<?php the_permalink(); ?>">Read more</a>
</div>
Это CSS
, который вызывает наложение на изображение на парении:
.post-img{
height:300px;
width: 100%;
background-size:cover;
transition : opacity 200ms ease-out;
-webkit-transition : opacity 200ms ease-out;
-moz-transition : opacity 200ms ease-out;
-o-transition : opacity 200ms ease-out;
}
.post-img:hover{
opacity:0.5;
}
span.overlay {
background-color: #f39300;
cursor: pointer;
height: 300px;
width: 585px;
position: absolute;
left: 0;
z-index: 10;
opacity: 0;
}
span.overlay:hover {
opacity: .5;
transition: opacity 200ms ease-in;
-webkit-transition: opacity 200ms ease-in;
-moz-transition: opacity 200ms ease-in;
-o-transition: opacity 200ms ease-in;
}
Все вышеперечисленное отлично работает, и я доволен этим.
Проблема заключается в том, что у меня также есть кнопка «Читать дальше» в разметке, которая - когда зависнет - я хочу также показать наложенное изображение. Я решил, что буду использовать jQuery для достижения этого.
У меня есть следующий сценарий:
$(document).ready(function() {
$('#srch-term').click(function() {
if ($('#search-builder').is(":hidden")) {
$("#search-builder").slideDown("fast");
} else {
$("#search-builder").slideUp("fast");
}
});
$('.read-more').hover(
function() {
$img = $(this).closest('div').find('.post-img');
$overlay = $(this).closest('div').find('.overlay');
$img.css({
"opacity": "0.5"
});
$overlay.css({
"opacity": ".5",
"transition": "opacity 200ms ease-in",
"-webkit-transition": "opacity 200ms ease-in",
"-moz-transition": "opacity 200ms ease-in",
"-o-transition": "opacity 200ms ease-in"
});
}, function() {
$img = $(this).closest('div').find('.post-img');
$overlay = $(this).closest('div').find('.overlay');
$img.css({
"opacity": "1.0",
"height": "300px",
"width": "100%",
"background-size": "cover",
"transition": "opacity 200ms ease-out",
"-webkit-transition": "opacity 200ms ease-out",
"-moz-transition": "opacity 200ms ease-out",
"-o-transition": "opacity 200ms ease-out"
});
$overlay.css({
" background-color": "#f39300",
"cursor": "pointer",
"height": "300px",
"width": "585px",
"position": "absolute",
"left": "0",
"z-index": "10",
"opacity": "0"
});
});
});
Сценарий отличный работает, но когда я зависать off
кнопку и попытка навести on
изображение больше не появляется оверлей.
Итак, подведем итог:
Я использую CSS, чтобы показать наложение при наведении на div
с классом .post-img
, и она работает. Я использую JQuery, чтобы показать наложение при наведении курсора на ссылку с классом .read-more
- и это работает - но когда я парить, оно больше не показывает наложение при наведении курсора на div.post-img
Любые идеи о том, куда я иду неправильно?
Это звучит как отличное решение Пола, я дам, что выстрел, и я доложу с результатом в ближайшее время. Большое спасибо. – Javacadabra
блестящий, просто работа! благодаря – Javacadabra