2015-01-30 3 views
0

Я хочу показать элемент p, когда нахожусь над footer-green. Дело в том, что я не могу понять, как отобразить его в совершенно разных div. В моем css я использовал .footer-green + .textAppear{}, но это, кажется, отображает его только внутри родителя div. Любые рекомендации, как это решить? Обратите внимание, что я очень много начинаю с кодированием.Наведите указатель мыши на div и отобразите еще один

HTML:

<div class="section active" id="section2"> 

     <div id="behind"> 
      <img src=" 02_Rechtwijzer-Dialoog_JvD01---web.gif" width="512" height="700" /> 
      <div class="footer-green"></div> 
      <div class="process-green"></div> 
      <div class="chat-red"></div> 
      <div class="leftNavBox-red"></div> 
      <div class="rightNavBox1-red"></div> 
      <div class="rightNavBox2-red"></div> 
      <div class="rightNavBox3-red"></div> 
      <div class="dialogueBox1"></div> 
      <div class="dialogueBox2"></div> 

     </div> 
     <div class="next"> 
     <p class="textAppear">I'm invisible until you hover !</p> 
     </div>  

    </div> 

Поэтому в основном я хочу, чтобы отобразить .textAppear в совершенно иной, чем DIV #behind. Возможно ли это с помощью html/css?

Вот CSS, который я использовал, но он показывает .TextAppear внутри #behind.

CSS:

.footer-green:hover + .textAppear { 
    text-align:left; 
    display:inline-block; 
} 
+1

Добро пожаловать в StackOverflow. Это не будет работать так. Можете ли вы поместить абзац внутри .process-green или использовать Javascript? – skobaljic

+0

Классы div, такие как .process-green или .footer-green, представляют собой пустые div, которые я использую на картинке, так что, когда вы наводите указатель на div, он меняет свой цвет. То, что я хотел бы сделать, - это одновременно, когда вы наведите курсор, например .process-green, чтобы отобразить .textAppear в другом div, вне #behind. Но теперь я вижу, что я достаточно глуп, чтобы не создавать новый div, в котором я хочу, чтобы он появился. Мне жаль, я использую это впервые, поэтому у меня нет ноу-хау. –

ответ

0

Вы находитесь на правильном пути. Вам просто нужно указать, что элемент textAppear должен быть виден на «: hover».

JSbin: http://jsbin.com/guhazifope/1/edit?html,css,output

CSS:

.textAppear { 
    display:none 
} 

.footer-green:hover + .textAppear { 
    display:block 
} 

EDIT:

два решения JS.

JQuery:

$('.trigger') 
    .on('mouseover',function(){ 
    $('.target').show(); 
    }) 
    .on('mouseout',function(){ 
    $('.target').hide(); 
    }); 

Vanilla:

var trigger = document.querySelector(".trigger"); 

trigger.onmouseover = function(){ 
    document.querySelector(".target").style.display = 'block'; 
}; 

trigger.onmouseout = function(){ 
    document.querySelector(".target").style.display = 'none'; 
}; 
+0

Спасибо, я уже пробовал это. Он работает, но мне нужно использовать его по-разному. Если у меня есть div вне #behind, можно ли использовать это? так что я нацеливаюсь на аргумент (.textAppear) за пределами div #behind? –

+0

Если ваша цель не является «родным братом» для элемента триггера, вам придется использовать js. Я обновил свой пост двумя решениями, jquery и vanilla. – Linus

+0

делает коды sudo для более старой версии Css hover + ..... –

0
$('.footer-green').on("mouseover",function(){ ; 
    $('.textAppear').show(); 
}); 
$('.footer-green').on("mouseout",function(){ 
    $('.textAppear').hide(); 
}); 

Смотрите демо- http://jsfiddle.net/nadeemmnn2007/gm7dafh7/

+0

требуют, чтобы JQUERY был включен в вашу страницу .see я включил в демо –

+0

Спасибо, он работает! Единственное, что все элементы, которые я нацелил на этот jquery, видны, когда вы приземляетесь на страницу. Сначала нужно навести верх над div, а затем он исчезнет.Как я могу сделать это так, что когда вы приземлитесь на страницу, это не видно, только если вы наведите курсор на определенный div? –

+0

Могу ли я увидеть пример того, как вы загружаете? –

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