Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.06.2014, 18:26
Новичок на форуме
Отправить личное сообщение для dand1 Посмотреть профиль Найти все сообщения от dand1
 
Регистрация: 04.06.2014
Сообщений: 5

onMouseOver div'a, пропадает div
Привет всем, http://parser.tw1.ru/proba/2.html. Тут проблема возникает, в том, что при уходе курсора в div.w-popup, внутри этого элемента он исчезает, подскажите как решить данную проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 05.06.2014, 18:32
Новичок на форуме
Отправить личное сообщение для dand1 Посмотреть профиль Найти все сообщения от dand1
 
Регистрация: 04.06.2014
Сообщений: 5

var w_popup = function (extend){
            var self = this;
            this.source = null;
            this.extend = extend;
            this.timer = null;

            this.coords = function getCoords(elem) {
                var box = elem.getBoundingClientRect();
                var body = document.body;
                var docEl = document.documentElement;
                var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;
                var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;
                var clientTop = docEl.clientTop || body.clientTop || 0;
                var clientLeft = docEl.clientLeft || body.clientLeft || 0;
                var top  = box.top +  scrollTop - clientTop;
                var left = box.left + scrollLeft - clientLeft;
                return { top: Math.round(top), left: Math.round(left) };
            }

            this.fixPosition = function (){
                var c = self.coords(this.source[0]), obj = $("#w-popup-1"),
                        w = obj.find(".w-header")[0];
                obj[0].style.position = "absolute";
                console.log(obj[0].offsetWidth);
                obj[0].style.top = c.top - parseInt(self.css(w, "paddingTop")) + "px";
                obj[0].style.left = (c.left + this.source[0].offsetWidth) - (obj[0].offsetWidth - parseInt(self.css(w, "paddingRight"))) + "px";
            }
            this.css = function (elem, name) {
                // J/S Pro Techniques p136
                if (elem.style[name]) {
                    return elem.style[name];
                } else if (elem.currentStyle) {
                    return elem.currentStyle[name];
                }
                else if (document.defaultView && document.defaultView.getComputedStyle) {
                    name = name.replace(/([A-Z])/g, "-$1");
                    name = name.toLowerCase();
                    s = document.defaultView.getComputedStyle(elem, "");
                    return s && s.getPropertyValue(name);
                } else {
                    return null;
                }
            }
            this.init = function (){
                this.source = $("#" + this.extend.source);
                this.source.mouseover(function (evt){
                    $("#w-popup-1").animate({opacity: 'show'}, 'fast');
                    $("#w-popup-1").css("display", "inline-block");
                    self.fixPosition();
                    evt.preventDefault();
                    return false;
                })
                $("#w-popup-1").mouseout(function (evt){
                    $("#w-popup-1").animate({opacity: 'hide'}, 'fast')
                })

            }
            this.init();
        };

        $(document).ready(function (evt){
            new w_popup({source: "w-popup-enter"})
        })
Ответить с цитированием
  #3 (permalink)  
Старый 05.06.2014, 18:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

dand1,
строка 52 так замените mouseout на mouseleave
Ответить с цитированием
  #4 (permalink)  
Старый 05.06.2014, 18:41
Новичок на форуме
Отправить личное сообщение для dand1 Посмотреть профиль Найти все сообщения от dand1
 
Регистрация: 04.06.2014
Сообщений: 5

спасибо) очень помогли) еще плохо знаю js
Ответить с цитированием
  #5 (permalink)  
Старый 05.06.2014, 19:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

dand1,
http://learn.javascript.ru/mousemove...потомка
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение элементов из div'a в div gJam Events/DOM/Window 2 13.11.2012 19:43
onmouseover/onmouseout bes Общие вопросы Javascript 8 09.04.2012 18:34
Пропадает div belkir Элементы интерфейса 4 01.10.2011 23:35
Opera/IE баг с очередью обработки события несколькими элементами (напр onmouseover) no. Events/DOM/Window 8 08.03.2009 04:55
FireFox: onmouseover не работает при зажатой кнопке мыши no. Общие вопросы Javascript 4 19.08.2008 13:43