Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Всплывающее окно при наведении (https://javascript.ru/forum/misc/38524-vsplyvayushhee-okno-pri-navedenii.html)

Vempel 05.06.2013 13:50

Всплывающее окно при наведении
 
У меня есть товары http://magest.bget.ru/catalog/sumki. Как реализовать, чтобы при наведении на конкретный товар появлялась всплывашка (еще один div), как на картинке. А если убрать курсор с изображения то всплывашка бы исчезала. Заранее благодарен за любую помощь.

ksa 05.06.2013 13:57

Цитата:

Сообщение от Vempel
Как реализовать, чтобы при наведении на конкретный товар появлялась всплывашка (еще один div)

Просто сделать такой див... Потом сделать его прозрачным... При наведении менять ту прозрачность...

animhotep 05.06.2013 13:57

http://james.padolsey.com/demos/imgPreview/full/
http://www.mind-projects.it/projects...emos.php#demo1

Vempel 05.06.2013 14:09

Я делаю картинке position:absolute, а ее родителю relative, и это у меня работает только для одной картинки товара. А картинок товара может быть сколько угодно. Правильно ли я понимаю, что средствами css это реализовать невозможно.

Vempel 05.06.2013 14:10

мне нужно именно не увеличение, а чтобы у картинки менялась прозрачность при наведении и была всплывашка с описанием товара.

animhotep 05.06.2013 14:11

возможно
картинка_родитель:hover картинка_потомок{
display: block;
}

Vempel 05.06.2013 14:53

Когда я пытался реализовать это через css я так и делал.Картинка родитель(элемент li) : hover картинка потомок всплывашка с характеристиками. У картинки потомка изначально display:none при наведении block. Но этот вариант работает только для одной картинки, для одного товара. Я так понимаю чтобы работал для всех нужно использовать javascript. Какое решение для такого всплытия можно использовать на javascript если смотреть по первой ссылке. Заранее благодарен за любую помощь.

dmitriymar 05.06.2013 14:58

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.

ksa 05.06.2013 14:59

Цитата:

Сообщение от Vempel
Заранее благодарен за любую помощь.

Где тестовый пример? На чем показывать?

dmitriymar 05.06.2013 15:01

Цитата:

Сообщение от ksa
Где тестовый пример? На чем показывать?

ты как маленький:) конечно написать всё с учётом интеграции в сайт и показать т.с:D

Vempel 05.06.2013 15:12

Я не говорю об интеграции в сайт. Я прошу просто пример чего-то похожего. Вот то что у меня и почему-то оно не работает.
function show() {
	var menu = document.getElementByid('my');
	my.style.display = 'block';
}
function hide() {
	var menu = document.getElementByid('my');
	my.style.display = 'none';
}
function init() {
	var menu = document.getElementByid('my');
	menu.onmouseover = show;
	menu.onmouseout = hide;
}

3 функции на первой показывается на второй скрывается. а 3 вызывается через window.onload при загрузке страницы. Но почему-то это у меня не работает. Заранее благодарен за любую помощь.

ksa 05.06.2013 15:12

Цитата:

Сообщение от dmitriymar
конечно написать всё с учётом интеграции в сайт и показать т.с

Вот жешь попадалово... :blink:

Может отделаюсь примером?

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
* {
	margin: 0;
	padding: 0;
}
li {
	position: relative;
	display: inline-block;
}
li > div {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #ffffff;
	display: none;
	opacity: 0.7;
}
li:hover > div {
	display: block;
}
li > .text {
	position: absolute;
	top: 5px;
	left: 5px;
	right: 5px;
	font-size: 18pt;
	display: none;
}
li:hover > .text {
	display: block;
}
li > .money {
	position: absolute;
	right: 5px;
	bottom: 5px;
	font-size: 24pt;
	display: none;
}
li:hover > .money {
	display: block;
}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<ul>
	<li>
		<img src='http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' />
		<div></div>
		<p class='text'>text</p>
		<p class='money'>1000</p>
	</li>
	<li>
		<img src='http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' />
		<div></div>
		<p class='text'>text new</p>
		<p class='money'>2000</p>
	</li>
</ul>
</body>
</html>

ksa 05.06.2013 15:13

Цитата:

Сообщение от Vempel
Вот то что у меня и почему-то оно не работает.

Таки выкинь... :D

Vempel 05.06.2013 15:18

Вопрос не в этом. У меня много товаров не буду же я для каждого товара вручную прописывать div и двигать с помощью позиционирования. (положение всплывашки каждый раз будет разное). Поэтому насколько я понимаю средствами css эту проблему не решить. Вот страничка с товарами. http://magest.bget.ru/catalog/sumki

dmitriymar 05.06.2013 15:19

Цитата:

Сообщение от Vempel
function show() {
var menu = document.getElementByid('my');
menu.style.display = 'block';
}
function hide() {
var menu = document.getElementByid('my');
menu.style.display = 'none';
}
function init() {
var menu = document.getElementByid('my');
menu.onmouseover = show;
menu.onmouseout = hide;
}
init();

хотя, говнокод редкостный, для каждого события прописывать и контейнер..

Цитата:

Сообщение от Vempel
У меня много товаров не буду же я для каждого товара вручную прописывать div и двигать с помощью позиционирования.

Вот поэтому админки и cms придумали

Vempel 05.06.2013 15:22

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

dmitriymar 05.06.2013 15:24

Цитата:

Сообщение от Vempel
Я так понимаю мою задачу нельзя решить на css.

animhotepksa , уже показали решение css-ное

Vempel 05.06.2013 15:24

Цитата:

Сообщение от dmitriymar (Сообщение 254561)
хотя, говнокод редкостный, для каждого события прописывать и контейнер..


Вот поэтому админки и cms придумали

cms добавляет товар, а расположение картинки насколько я понимаю каждый раз будет разное. Поэтому css здесь не применим.

dmitriymar 05.06.2013 15:26

Цитата:

Сообщение от Vempel
cms добавляет товар, а расположение картинки насколько я понимаю каждый раз будет разное. Поэтому css здесь не применим

а если ещё подумать?

Vempel 05.06.2013 15:26

Пмогите пожалуйста, что нужно исправить в моем коде.

dmitriymar 05.06.2013 15:27

Цитата:

Сообщение от Vempel
Пмогите пожалуйста, что нужно исправить в моем коде.

Цитата:

Сообщение от ksa
Таки выкинь...

я уже писал что исправить в нём-красным отмечено. в идеале -выбросить всё

Vempel 05.06.2013 15:28

А если серьезно.

dmitriymar 05.06.2013 15:30

Цитата:

Сообщение от Vempel
А если серьезно.

Vempel,
ты читать вообще умеешь что тебе пишут?
Цитата:

Сообщение от dmitriymar

function show() {
var menu = document.getElementByid('my');
menu.style.display = 'block';
}
function hide() {
var menu = document.getElementByid('my');
menu.style.display = 'none';
}
function init() {
var menu = document.getElementByid('my');
menu.onmouseover = show;
menu.onmouseout = hide;
}
init();


ruslan_mart 05.06.2013 15:32

.product, .product > div {
   height: 200px;
   width: 200px;
}

.product > div {
   opacity: 0;
   transition: opacity 0.5s;
}

.product:hover > div {
   cursor: pointer;
   opacity: 1;
}


<div class="product" style="background-image:url('изображение сумки')">
   <div>Контент</div>
</div>


Упс, пока я тут писал, вы уже написали кучу вариантов. :)

ksa 05.06.2013 15:39

Цитата:

Сообщение от Vempel
cms добавляет товар, а расположение картинки насколько я понимаю каждый раз будет разное. Поэтому css здесь не применим.

Звучит как диагноз... :D

Vempel 05.06.2013 15:41

А я не прав в том что css здесь неприменим. Если есть какое-то решение с сss то подскажите пожалуйста.

Vempel 05.06.2013 15:43

Цитата:

Сообщение от Ruslan_xDD (Сообщение 254570)
.product, .product > div {
   height: 200px;
   width: 200px;
}

.product > div {
   opacity: 0;
   transition: opacity 0.5s;
}

.product:hover > div {
   cursor: pointer;
   opacity: 1;
}


<div class="product" style="background-image:url('изображение сумки')">
   <div>Контент</div>
</div>


Упс, пока я тут писал, вы уже написали кучу вариантов. :)

Но дело в том, что всплывающее окно с характеристиками будет каждый раз позиционироваться по-разному относительно расположения картинки. Или я чего-то не понимаю. Вот страница с картинками товара http://magest.bget.ru/catalog/sumki

ruslan_mart 05.06.2013 16:09

Vempel, ну можно просто в div каждой сумки вкладывать div с характеристиками.

dmitriymar 05.06.2013 16:21

Цитата:

Сообщение от Vempel
Я делаю картинке position:absolute, а ее родителю relative,

тяжело посмотреть от чего абсолют отсчитывается и в каких случаях считается по разному?

Vempel 05.06.2013 21:19

Спасибо за помощь. Я разобрался. Никакой javascript тут действительно был не нужен. тему можно закрывать.

ksa 06.06.2013 09:25

Цитата:

Сообщение от Vempel
Если есть какое-то решение с сss то подскажите пожалуйста.

Все примеры есть в теме...


Часовой пояс GMT +3, время: 00:45.