2015-02-26 3 views
0

У меня есть div с CSS «display: none», и я хочу, чтобы он был определен определенным образом, одновременно зависав образ класса «Предварительный просмотр». Я не могу использовать только CSS, потому что мой скрытый div включает в себя изображения, которые нужно изменить в зависимости от того, какое изображение из элемента списка вы наводите. Я читал и пробовал все здесь, How to position one element relative to another with jQuery?Позиционирование элемента при наведении на другой элемент

но ничего не работает для меня. Вот мой HTML:

<div id="content"> 
     <ul> 
      <li> 
       <a href="#"> 
        <img class="preview" src="images/E46_1.jpg"> 
       </a> 
       <div>Whatever whatever whatever whatever whatever</div> 
      </li> 

      <li> 
       <a href="#"> 
        <img class="preview" src="images/E93_1.jpg"> 
       </a> 
       <div>Whatever whatever whatever whatever whatever</div> 
      </li> 

      <li> 
       <a href="#"> 
        <img class="preview" src="images/E46_1.jpg"> 
       </a> 
       <div>Whatever whatever whatever whatever whatever</div> 
      </li> 
     </ul> 
    </div> 

И мой DIV с CSS "дисплей: ни один" слайдер.

Я думаю, мне нужен простой (не похожий на те из ссылок, которые я опубликовал выше) аналог JBuery для Javascript в JQuery. Пожалуйста помоги!

ответ

1

Если вы можете уточнить, я могу сделать это лучше, но для основы, здесь идет:

здесь сочетание обоих: http://jsfiddle.net/zc2m9yh1/

JQ:

$("#content ul li").hover(function() { 
    var src = $(this).find("img").attr("src"); 
    $(this).children("div").html('<img src="' + src + '">'); 
}, function() { 
    //on mouseout 
}); 

CSS :

#content ul li div { 
    display: none; 
} 
#content ul li:hover div { 
    display: block; 
} 
#content ul li img { 
    max-width: 100px; 
} 
+0

Извините, я не понимаю, как это решает проблему. Мне нужно, чтобы мой скрытый div выглядел в стороне от зависшего изображения (например, всплывающей подсказки). В вашем примере он просто добавляет одно изображение под списком. –

+0

Вы добавляете элемент на dom, а затем выполняете относительное положение, такое как фиксированное, и получите позицию порта представления элемента, для которого вы хотите его верхнее положение. Если вам нужен пример, я могу написать его. В любом случае, я использую этот метод при работе с libs, например, с томатом. – Casey

+0

@Casey Пример был бы замечательным, если можно, пожалуйста. –

0

Здесь следующим образом:

var pos = $(element to position by).position(); 

var width = $(this).outerWidth(); 

//show the element over the placeholder 
$("item to position").css({ 
    position: "absolute", 
    top: pos.top + "px", 
    left: (pos.left + width) + "px" 
}).show(); 

});

Отличный пример работы здесь также на скрипке, созданной другим. http://jsfiddle.net/wjbuys/QrrpB/

+0

Я не могу понять причину, но это не работает для меня. Вот мой слайдер, http://postimg.org/image/661yeml3t/ , но после вставки кода он выглядит, что http://postimg.org/image/k0u2gpltd/ И что «slidercut» даже Безразлично» t, как это предполагается при наведении изображения. Он просто застрял в одном месте и рубит. –

+0

Помните, что это также основано на макете, а не на том, что вы визуально видите. Элемент может показаться, что он находится в левом нижнем углу экрана, но расположен по-разному относительно фактического относительного положения. Можете ли вы опубликовать свой код на скрипке, и я могу взглянуть на него? – Casey

+0

Как-то Fiddle не показывает мне мой Slider div правильно, как ожидалось на скриншоте # 1. Но в любом случае принцип должен быть одним и тем же. Вот http://jsfiddle.net/hon9yv8e/ Не могли бы вы помочь сделать, что «div» (черный ящик слева) появляется в правой части изображения при наведении на них. Как диалоговое окно. –

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