#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Я что-то делаю, и мне интересно, как заставить div накладывать другой div и его содержимое. То, что я пытаюсь сделать, похоже на youtube, когда вы смотрите видео и наводите курсор на чей-то аватар, он покажет небольшое окно с изображением их канала и тому подобное. Вот фотография того, что я сейчас получаю на скриншоте. Вот мои коды для двух divs:
круговой div
#staff-info {
width: 400px;
height: 300px;
background: #999;
border: 1px solid #333;
border-radius: 6px;
margin: 0 auto;
position: relative;
}
штатные ящики
#staff {
width: 256px;
height: 60px;
margin: 7px 4px 7px 4px;
background: #fff;
display: inline-block;
background: #f3f6f9;
}
.staff-avatar {
width: 40px;
height: 40px;
padding: 10px;
display: inline-block;
float: left;
}
.staff-name {
display: inline-block;
padding-top: 8px;
}
.staff-job {
padding-top: -100px;
font-size: 12px;
}
Серая область (основной div)
#youtuber-about {
width: 890px;
height: auto;
background: #d5d3d3;
margin-left: auto;
margin-right: auto;
font-size: 16px;
padding: 10px 0px 10px 10px;
display: inline-block;
}
html для divs
<div id="staff-info">yolo</div>
<div id="youtuber-about" style="color: #333;">Our Staff<br>
<?php
foreach ($staff as $staff) {
echo '
<div id="staff"><img src="'.$staff['avatar'].'" class="staff-avatar"><div class="staff-name">'.$staff['name'].'</div><div class="staff-job">'.$staff['job'].'</div></div>';
}
?>
</div>
Комментарии:
1. Вы можете использовать всплывающую подсказку. Что-то вроде этого onehackoranother.com/projects/jquery/tipsy
2. Чтобы использовать это, вам нужно загрузить их исходный код, я не хочу использовать какие-либо подобные источники для своего проекта, спасибо за ответ
3.Пробовал
data-*
атрибуты внутриhtml
circular
,staff
,grey
и т.д.,:hover
data(attr)
Внутри?css
4. хорошо, посмотрите это — mkyong.com/jquery/how-to-create-a-tooltips-with-jquery
5. попробуйте использовать javascript, вы добавляете функцию в свой тег как «onmouseover =»здесь идет ваша функция», а также onmouseout =»ваша функция», последнее необязательно.
Ответ №1:
Если вы используете jQuery, вы можете просто добавлять информацию div
внутри каждого сотрудника div
всякий раз, когда пользователи наводят курсор мыши на этого сотрудника.
$('#youtuber-about > div').mouseover(function(){
$(this).append($('#info'));
});
И затем вы можете довольно легко стилизовать это с помощью CSS, просто установив значение info div
равным be position: absolute;
и установить для заполнения содержащего элемента, установить для отображения при наведении курсора мыши.
Комментарии:
1. Хорошо, это выглядит хорошо, но что, если бы у вас был php foreach, чтобы он отображал более одного.
2. Вот почему я создал 3 контейнера изображений в своей демонстрации. Это для имитации вывода
foreach
цикла, создающего несколько контейнеров. Обратитеdiv
внимание, что для всех трех изображений используется только одна информация.3. Итак, я заставил его хорошо работать над своим проектом, теперь просто нужно сделать так, чтобы у каждого сотрудника было отдельное информационное окно, должно быть легко
4. Если у каждого сотрудника есть отдельное информационное окно, не могли бы вы просто поместить каждое информационное окно внутри каждого окна персонала для начала и полностью пропустить javascript?
5. Я мог бы, но на самом деле это выглядело бы не так хорошо, как наложение информации.
Ответ №2:
http://css-tricks.com/absolute-positioning-inside-relative-positioning/
Что я бы сделал, так это иметь div, который содержит оба этих двух divs, и поиграть с вашим CSS и вложенностью divs, чтобы правильно их наложить.
Абсолютное и относительное позиционирование довольно сложно, как первое, но как только вы освоитесь, вы будете делать это влево и вправо
Итак, помните
Добавьте оба divs в третий пустой div, а затем поместите тот, который вы хотите наложить под другим.
Для перемещения используйте
.something {
position: absolute
top:20%
right:15%
left:10%
bottom:20%
}