Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.11.2018, 10:29
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

некорректно появляется/исчезает тултип
При наведении на зеленый кружок появляется тултип
при выведении курсора с зеленого кружка, тултип исчезает
Но бывает такое когда курсор находиться на границе зеленого кружка
тултип начинает бешено появляется и исчезать, как бы моргая
http://skrinshoter.ru/s/011118/V9mMZtsL?a

Как это исправить?
https://codepen.io/anon/pen/Xxveme
Ответить с цитированием
  #2 (permalink)  
Старый 01.11.2018, 10:40
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от yaparoff
Как это исправить?
Сделать так, чтобы тултип не перекрывал кружок либо, чтобы он не закрывался, когда фокус переходит на него.
Ответить с цитированием
  #3 (permalink)  
Старый 01.11.2018, 11:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

tooltip and setTimeout
yaparoff,
<!DOCTYPE html><html lang='en' class=''>
<head>
<meta charset="utf-8">
<style class="cp-pen-styles">.sidebar__block {
    margin-top: 60px;
}

.sidebar__user-actions-status {
    display: flex;
    align-items: center;
    font-size: 16px;
}
.sidebar__user-actions-status-loyal {
    display: block;
    width: 8px;
    height: 8px;
    margin-right: 8px;
    border-radius: 6px;
    cursor: pointer;
}
.sidebar__user-actions-status-loyal--good {
    background-color: #2dc2bd;
}
.sidebar__user-actions-status-loyal--may-be-good {
    background-color: #2DC2BD;
}
.sidebar__user-actions-status-loyal--not-good {
    background-color: #E53D00;
}
.sidebar__user-actions-status-loyal-container {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-around;
    width: 20px;
    height: 20px;
}
.sidebar__user-actions-status-text {
    font-size: 16px;
    line-height: 16px;
}

.sidebar__tooltip {
    position: fixed;
    left: -9999px;
    visibility: hidden;
    width: 320px;
    z-index: 101;
    background: #FFFFFF;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 10px rgba(0, 0, 0, 0.24);
    opacity: 0;
    transition: visibility 0s ease-out 0.3s, opacity ease-out 0.3s;
}
@media (max-width: 1024px) {
    .sidebar__tooltip {
        display: none;
    }
}
.sidebar__tooltip--notifications {
    top: 115px;
}
.sidebar__tooltip--notifications:after {
    position: absolute;
    display: block;
    content: '';
    top: -19px;
    left: 30px;
    border: 10px solid transparent;
    border-bottom: 12px solid #ffffff;
}
.sidebar__tooltip--notifications .sidebar__tooltip-wrapper {
    max-height: 360px;
    padding: 15px 0 0;
}
.sidebar__tooltip--notifications-active {
    left: 165px;
    visibility: visible;
    opacity: 1;
    transition: visibility 0s linear 0s, opacity 0.3s ease-out;
}
.sidebar__tooltip--loyal {
    z-index: 102;
}
.sidebar__tooltip--loyal:after {
    position: absolute;
    display: block;
    content: '';
    top: 15px;
    left: -19px;
    border: 10px solid transparent;
    border-right: 12px solid #ffffff;
}
.sidebar__tooltip--loyal-active {
    visibility: visible;
    opacity: 1;
    transition: visibility 0s linear 0s, opacity 0.3s ease-out;
}
</style></head><body>
<div class="sidebar__tooltip sidebar__tooltip--loyal">
    <div class="sidebar__tooltip-wrapper">
        <h3 class="sidebar__tooltip-title">Ваш статус: Благонадежный</h3>
        <p class="sidebar__tooltip-text">Поставка шинной продукции в ваш адрес возможна на следующих условиях расчетов: 100% предварительная оплата или отсрочка платежа на условиях ценовой программы.</p>
    </div>
</div>

<div class="sidebar__block">
    <div class="sidebar__user-actions-status">
        <div class="sidebar__user-actions-status-loyal-container">
            <span class="sidebar__user-actions-status-loyal sidebar__user-actions-status-loyal--may-be-good"></span>
        </div>
        <span class="sidebar__user-actions-text">ООО «Шина»</span>
    </div>
</div>
<script >
const tooltipLoyal = document.querySelector('.sidebar__tooltip--loyal');
const userActionsStatusLoyal = document.querySelector('.sidebar__user-actions-status-loyal');


function showInfoTooltipLoyal() {
    console.log('show');
    const topPosition = userActionsStatusLoyal.getBoundingClientRect().top;
    const rightPosition = userActionsStatusLoyal.getBoundingClientRect().right;
    tooltipLoyal.style.top = topPosition - 20 + 'px';
    tooltipLoyal.style.left = rightPosition + 15 + 'px';
    tooltipLoyal.classList.add('sidebar__tooltip--loyal-active');
}

function hideInfoTooltipLoyal() {
    console.log('hide');
    tooltipLoyal.classList.remove('sidebar__tooltip--loyal-active');
    tooltipLoyal.removeAttribute('style');
}

let timer;
function timerEnd()
{
    window.clearTimeout(timer)
}

userActionsStatusLoyal.addEventListener('mouseover', function (event) {
    timerEnd();
    showInfoTooltipLoyal();
});
userActionsStatusLoyal.addEventListener('mouseout', function () {
    timerEnd();
   timer = window.setTimeout(hideInfoTooltipLoyal, 100)
});
tooltipLoyal.addEventListener('mouseover', function (event) {
    timerEnd();
    showInfoTooltipLoyal();
});

tooltipLoyal.addEventListener('mouseout', function () {
    timerEnd();
   timer = window.setTimeout(hideInfoTooltipLoyal, 100)
});

</script>
</body></html>
Ответить с цитированием
  #4 (permalink)  
Старый 01.11.2018, 12:43
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

Сообщение от Nexus Посмотреть сообщение
Сделать так, чтобы тултип не перекрывал кружок либо, чтобы он не закрывался, когда фокус переходит на него.
точно, помогло
Ответить с цитированием
  #5 (permalink)  
Старый 01.11.2018, 12:44
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

рони,
у меня почему то тултип вообще не появляется в этом коде
в любом случае спасибо. Решение нашел
Ответить с цитированием
  #6 (permalink)  
Старый 01.11.2018, 13:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от yaparoff
у меня почему то тултип вообще не появляется в этом коде
скопируйте код и запустите у себя.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Express.js + mongoose авторизация работает некорректно granfury Node.JS 1 11.12.2016 20:25
некорректно работает $(this).removeClass('check') boobbbbbbbbbb Элементы интерфейса 6 12.01.2016 02:25
Некорректно работает самописный плагин ILL-JAH jQuery 9 18.10.2014 17:02
Некорректно срабатывает скрипт на странице с pop-up Heidel jQuery 2 13.11.2012 17:44
Некорректно работает функция для создания элементов exec Общие вопросы Javascript 4 13.07.2010 11:15