27 / 41 / 13
Регистрация: 15.05.2013
Сообщений: 1,313
1

Определение позиции курсора относительно элемента

06.10.2015, 01:26. Показов 1999. Ответов 2
Метки нет (Все метки)

Подскажите пожалуйста, допустим есть выпадающий список ul li, открывающийся при наведении курсора на стрелку .arrow. Список должен открываться под стрелкой и текстом text. С открытием списка проблем нет.
Но открытый список закрывается, когда нужно переместить курсор со стрелки на список.
Как сделать, чтобы открытый список не закрывался при перемещении курсора со стрелки на список?
HTML5
1
2
3
4
5
6
7
8
<div>
    <p>text</p><span class="arrow">arrow</span>
    <ul>
        <li>one</li>
        <li>two</li>
        <li>three</li>
    </ul>
</div>
CSS
1
ul{display: none}
Javascript
1
2
3
4
5
6
7
8
9
10
$(document).ready(function() {
 
    $('.arrow').on('mouseenter', function () {
        $(this).parent().find('ul').stop(true, true).slideDown(300);
    });
    $('.arrow').on('mouseenter', function () {
        $(this).parent().find('ul').stop(true, true).slideUp(300); 
    });
 
});
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2015, 01:26
Ответы с готовыми решениями:

Определение позиции div'a относительно границ монитора
когда прокручиваем сайт, можно ли определить с помощью jquery находиться ли блок в приделе...

Определение позиции курсора в TextArea
Как на JAvaScript опрелеить позицию курсора в текстареа?? Заранее спасиба!

Определение позиции курсора
Здравствуйте! Задание следующего характера: написать фрагмент программы, реализующий задание:...

Определение позиции курсора
Скажите какие функции использовать для того чтобы получить данную позицию курсора. Например нужны...

2
3322 / 2842 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
06.10.2015, 03:28 2
phpk, во-первых, у вас оба события "mouseenter". Хотя, это может быть опечатка. Во-вторых, нужно изменить html-структуру. Т.к. расстояние между arrow и ul в один пиксель, уже будет служить причиной для закрытия списка. Возьмите классическую структуру списков:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div>
    <ul>
        <li>text 1 <span class="arrow">arrow</span>
            <ul>
                <li>one 1</li>
                <li>two 1</li>
                <li>three 1</li>
            </ul>
        </li>
        <li>text 2 <span class="arrow">arrow</span>
            <ul>
                <li>one 2</li>
                <li>two 2</li>
                <li>three 2</li>
            </ul>
        </li>
    </ul>
</div>
Если вам принципиально важно, чтобы список раскрывался по наведению на arrow, подойдёт такой вариант:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$(document).ready(function () {
 
    $('li').on({
        mouseover: function (e) {
            if (e.target.classList[0] === 'arrow') {
                $('ul', this).finish().slideDown(300);
            }
        },
        mouseleave: function () {
            $('ul', this).finish().slideUp(300);
        }
    });
 
});
Если же без разницы, то
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
$(document).ready(function () {
 
    $('li').on({
        mouseenter: function (e) {
            $('ul', this).finish().slideDown(300);
        },
        mouseleave: function () {
            $('ul', this).finish().slideUp(300);
        }
    });
 
});
Обратите внимание, что в первом случае используется событие "mouseover", а во втором - "mouseenter"! Пример в песочнице
1
27 / 41 / 13
Регистрация: 15.05.2013
Сообщений: 1,313
06.10.2015, 10:46  [ТС] 3
Цитата Сообщение от Lazy_Den Посмотреть сообщение
Обратите внимание, что в первом случае используется событие "mouseover", а во втором - "mouseenter"
собственно а почему там разные события? mouseover и mouseenter
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2015, 10:46
Помогаю со студенческими работами здесь

TMemo определение позиции курсора
Здравствуйте столкнулся с такой проблемой мне требуется определить позицию в Memo на которой...

Определение позиции курсора в поле
Подскажите., можно как-н определить позицию курсора в поле, чтобы при нажатии на какую-н кнопку...

Определение позиции курсора в TextBox'e
Всем привет! Подскажите как определить текушую позицию курсора в TextBox'e? Собственно мне...

Определение позиции курсора на экране (не на форме)
Привет! я обрабатываю перемещение по графику функции, нарисованном на PictureBox'е формы, и хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru