2015-04-20 4 views
3

Я пытаюсь применить эффект наведения к изображениям в моей теме WP. Это сетка образов, созданных изображением на сообщениях.Эффект наведения на изображение

сетка контролируется в content.php

<?php 
/** 
* controls main grid images 
*/ 
?> 

<article id="post-<?php the_ID(); ?>" <?php post_class('col-md-4 col-sm-4 pbox '); ?>> 

    <div class = "box-ovrly"> 
     <h2 class="box-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2> 
     <div class="box-meta"><?php the_category(', '); ?></div> 
    </div> 

    <?php 
     $thumb = get_post_thumbnail_id(); 
     $img_url = wp_get_attachment_url($thumb,'full'); //get full URL to image (use "large" or "medium" if the images too big) 
     $image = aq_resize($img_url, 750, 560, true); //resize & crop the image 
    ?> 

    <?php if($image) : ?> 
    <a href="<?php the_permalink(); ?>"> <img class="img-responsive hover-decal" src="<?php echo $image ?>"/></a> 
    <?php endif; ?> 

</article><!-- #post-## --> 

Я хочу, чтобы превратить «коробчатого чрезмерно» Div в наложение поверх изображения, но не может найти соответствующие JS и CSS.

CSS-я прямо сейчас ...

.box-ovrly { 
z-index: 100; 
position: absolute; 
top: 0px 
left: 0px; 
} 

Это ставит название и категорию в верхней части изображения. Я хочу, чтобы у него был фон, чтобы покрыть изображение при наведении курсора, но не отображался вообще до тех пор, пока он не завис над

.

Прекрасный пример того, что я ищу (в конечном итоге, различные цвета фона и т. Д. Но я не знаю «т хотите любой текст на изображении, пока не парил) для на этом портфеле

http://redantler.com/work/

ответ

0

должен был сделать что-то подобное, но мы надеемся, что это работает для вас. Конечно, измените для своего использования. Это упрощенная версия

Ver. 1 (HTML, JS и CSS в ссылке, JS размещена здесь): http://jsfiddle.net/SnvMr/6/

$('.effect').hover(
    function() { 
     $('.effect').not(this).stop().fadeTo(500, 0.33); 
     $(this).find('p').fadeIn(500); 
    }, function() { 
     $('.effect').stop().fadeTo(500, 1); 
     $('.effect p').fadeOut(500); 
    } 
); 

Ver. 2: http://jsfiddle.net/deelite/SnvMr/12/

+0

Могу ли я добавить это непосредственно в functions.php, или мне нужно привести его через внешние js. Версия 2 выглядит так, как будто она работает лучше – user3550879

+0

Просто добавьте ее в свой JS-файл и файл стиля. измените по своему вкусу. Я знаю, что код, который я дал, также имеет наложение текста (и эффект затухания при наведении на один из элементов на других элементах), но просто удалите эти детали из HTML/JS/CSS. Вы можете позвонить ему. Через вашу функцию или ваш код вы вызываете, какой стиль или идентификатор стиля вы хотите, чтобы это повлияло. JS - это просто плавный переход между изображениями, которые вы используете, в этом случае затухание. – Keoki

+0

Я не могу заставить его работать в моем файле, я создал новый js/hover-decal.js и использовал вашу кодировку из jsfiddle – user3550879

1

Вы можете добиться этого эффекта с помощью чистого CSS.

JSFiddle - http://jsfiddle.net/y3z4pojv/6/

В коде ниже, наиболее важной частью является .element:hover > .elementHover бит. Это означает «отображение .elementHover, которое является дочерним по отношению к .element, КОГДА .element находится в движении».

Просто проверьте, как HTML структурирован в этом примере и эмулирует это в коде WordPress. (Разумеется, с соответствующими именами для ваших элементов).

Тест CSS:

.element { 
    position: relative; 
    display: inline-block; 
    z-index: 0; 
    width: 300px; 
    height: 300px; 
    overflow: hidden; 
} 
.strawberries { 
    background: url('http://images4.fanpop.com/image/photos/16300000/Delicious-pretty-fruit-fruit-16382128-670-562.jpg'); 
} 
.watermelon { 
    background: url('http://fyi.uwex.edu/safepreserving/files/2013/08/watermelon.jpg'); 
} 
.pineapple { 
    background: url('http://static.giantbomb.com/uploads/original/7/71129/2672509-6564604021-pinea.jpg'); 
} 
.element:hover > .elementHover { 
    opacity: 1; 
    z-index: 1; 
} 
.elementHover { 
    position: absolute; 
    opacity: 0; 
    z-index: -1; 
    height: 100%; 
    width: 100%; 
    -webkit-transition: all 500ms; 
    -moz-transition: all 500ms; 
    transition: all 500ms; 
} 
.hoverContent { 
    position: relative; 
    z-index: 10; 
    color: #fff; 
    font-size: 200%; 
    padding: 1em; 
} 
.hoverBackground { 
    position: absolute; 
    z-index: 5; 
    width: 100%; 
    height: 100%; 
    opacity: 0.8; 
} 
.green { 
    background: green; 
} 
.red { 
    background: red; 
} 

Тест HTML:

<div class="element strawberries"> 
    <div class="elementHover"> 
     <img class="hoverBackground" src="http://www.aux.tv/wp-content/uploads/2012/09/how-to-rick-roll-somebody.jpg"/> 
     <span class="hoverContent"> 
      Hello there 
     </span> 
    </div> 
</div> 
<div class="element watermelon"> 
    <div class="elementHover"> 
     <div class="hoverBackground green"></div> 
     <span class="hoverContent"> 
      Goodbye now 
     </span> 
    </div> 
</div> 
<div class="element pineapple"> 
    <div class="elementHover"> 
     <div class="hoverBackground red"></div> 
     <span class="hoverContent"> 
      ...Not yet 
     </span> 
    </div> 
</div> 

Обратите внимание, что вы можете просто иметь простой цветной DIV вместо IMG на парении, все, что вам нужно сделать это изменение IMG тег до DIV и установить фон .hoverBackground.

+0

Это, кажется, работает хорошо в примере и довольно просто. Но, как я уже говорил, после того, как я получаю проводку, я хочу, чтобы потом изменил фон наведения на разные цвета для разных сообщений. Я предполагаю, что это связано с js, так будет ли этот метод хорошо интегрироваться с этим? – user3550879

+0

Да, конечно, вам просто нужно добавить больше классов и указать стиль, который вы хотите для каждой отдельной записи. Я немного обновлю jsFiddle. –

+1

Посмотрите: http://jsfiddle.net/y3z4pojv/5/ Это то, что вы хотите? Вы можете в значительной степени стилизовать их так, как хотите. Просто продолжайте добавлять классы. –

Смежные вопросы