#javascript #jquery #css
#javascript #jquery #css
Вопрос:
Не знаю, почему окно всплывающей подсказки (класс .show_tooltip
) отображается слева при включении мыши li a
. Я хочу отображать каждое окно всплывающей подсказки поверх той же ссылки, что и мышь, т. Е. Чуть выше / слева от ссылки. Ссылки должны быть справа так же, как и сейчас, поэтому, пожалуйста, не меняйте мой html-код) ДЕМО
Пример: наведение курсора мыши на «как»: что я могу сделать, чтобы получить это так?
Эти коды представляют собой небольшую часть образца из моего исходного кода, который довольно длинный.
CSS:
.show_tooltip{
background-color: #E5F4FE;
display: none;
padding: 5px 10px;
border: #5A5959 1px solid;
position: absolute;
z-index: 9999;
color: #0C0C0C;
/*margin: 0 0 0 0;
top: 0;
bottom: 0;*/
}
HTML:
<ul>
<li>
<div class="show_tooltip">
put returns between paragraphs
</div>
<a href="#">about</a>
</li>
<li>
<div class="show_tooltip">
for linebreak add 2 spaces at end
</div>
<a href="#">how</a>
</li>
</ul>
jQuery:
$("li a").mouseenter(function(){
$(this).prev().fadeIn();
}).mousemove(function(e) {
$('.tooltip').css('bottom', e.pageY - 10);
$('.tooltip').css('right', e.pageX 10);
}).mouseout(function(){
$(this).prev().fadeOut();
})
Ответ №1:
Во-первых, вы усложняете разметку таким образом, но поскольку вы сказали не изменять HTML, вот что вы можете сделать, чтобы разместить всплывающую подсказку рядом со ссылкой.
Рабочая демонстрация -> http://jsfiddle.net/bikerabhinav/AQh6y/8 /
Объяснение: получить ширину родительского контейнера (действовать как ось / основание)
var t = $('ul').outerWidth();
Получить смещение влево ссылки :
var l = $(this).offset();
Примените их к CSS всплывающей подсказки. Расположите его абсолютно:
$("li a").mouseenter(function(){
var l = $(this).offset();
var t = $('ul').outerWidth();
$(this).prev().css({right:t 20-l.left,top:l.top}).fadeIn();
}).mousemove(function(e) {
$('.tooltip').css('bottom', e.pageY - 10);
$('.tooltip').css('right', e.pageX 10);
}).mouseout(function(){
$(this).prev().fadeOut();
});
PS: по сути, это скорее хак, но я надеюсь, вы понимаете, что я пытаюсь здесь сделать. Гораздо лучшим способом было бы, если бы вы очистили HTML
Комментарии:
1. в моем проекте это не работает, увидимся: ссылка
2. Это потому, что ваша HTML-разметка неверна. Отлично работает в Chrome / FF (ПОЧЕМУ вы постоянно изменяете предоставленную вами ссылку? как мы должны увидеть, что не так?) В любом случае, сначала исправьте HTML CSS
3. Хорошо, я вставил оригинал HTML в ссылку , пожалуйста, увидимся и скажи мне, в чем проблема? {я изменил ссылку, потому что я использую codeigniter, я думаю, что, возможно, проблема в этом, и я не могу поместить ее в jsfiddel. Пожалуйста, посмотрите эту ССЫЛКУ и скажите мне, что не так и что должно измениться в HTML и CSS?}
Ответ №2:
это то, что вы хотите —> DEMO
изменение position: fixed;
в .show_tooltip{}
Комментарии:
1. чего ты хочешь, я не понимаю?? вы хотите, чтобы подсказка вслух появлялась чуть выше ссылки??