всплывающее окно при входе на сайт

Тема в разделе "JavaScript", создана пользователем Bicdibus, 21 сен 2014.

Модераторы: ZiX
  1. Bicdibus

    Bicdibus

    Регистр.:
    5 мар 2010
    Сообщения:
    485
    Симпатии:
    7
    у кого есть скрипт вспливающего окна на яваскрипт, чтоб вставить в тело страницы и окно откривалось по центру, скриптов пересмотрел много, но они все открываются при клике по ссылке, также возможно чтоб окно всплывало после движения мышью, в програмировании на яваскрипт не расбираюсь, но в общем представление имею.
     
  2. Nikita_Sp

    Nikita_Sp Создатель

    Регистр.:
    28 мар 2013
    Сообщения:
    15
    Симпатии:
    3
    document.onmousemove = function() {
    // Тут открываешь окно, например так:
    openWindow();
    };
     
  3. ofolfa

    ofolfa Создатель

    Регистр.:
    15 авг 2008
    Сообщения:
    27
    Симпатии:
    7
  4. NSMuffin

    NSMuffin Писатель

    Регистр.:
    9 дек 2013
    Сообщения:
    3
    Симпатии:
    0
    лучше на window.onload, в противном случае при каждом движении мышью будет всплывать...
     
  5. Nikita_Sp

    Nikita_Sp Создатель

    Регистр.:
    28 мар 2013
    Сообщения:
    15
    Симпатии:
    3
    читаем....

     
  6. warg

    warg Постоялец

    Регистр.:
    26 июн 2007
    Сообщения:
    122
    Симпатии:
    122
    как возможное решение задачи "всплывающее окно при входе на сайт" ?
    причем далеко не самое удачное, поскольку чем больше возить курсором по странице тем больше вылезет окон поверх друг друга.
    в этом случае надо в openWindow удалять слушатель на событие, что бы этого не происходило.
    onLoad в этом случае гораздо более простое и логичное решение.
     
  7. Nikita_Sp

    Nikita_Sp Создатель

    Регистр.:
    28 мар 2013
    Сообщения:
    15
    Симпатии:
    3

    Как только окно открылось (jquery:(

    function openWindow(){
    alert("window was open");
    }
    $(document).ready(function(){
    openWindow();
    });

    (или онлоад)
    Сработает вне зависимости от взаимодействия пользователя со страницей! Если же необходимо чтобы когда человек работает со страницей вылезло окно, что сейчас очень популярно ввиду маркетинговых соображений, т.к. если сходу выдать окно пользователю, то он его просто закроет и даже не прочитает что там сказано, т.к. расценит это как рекламу (как popup).

    Следовательно ЖЕЛАТЕЛЬНО и ЦЕЛЕСООБРАЗНЕЕ и ЛОГИЧНЕЕ все равно использовать событие движения мышью.
    Также выше выражение неверно, относительно количества окон. В зависимости от того какой триггер мы будем использовать - будет разное количество вызовов. (см. демо внизу на страницах референсов)

    mouseover - http://api.jquery.com/mouseover/
    mousemove - http://api.jquery.com/mousemove/
    mouseenter - http://api.jquery.com/mouseenter/

    И код не намного будет больше (jquery:(


    function openWindow(){
    document.onmousemove = null;
    alert("window was open");
    }
    $(document).ready(function(){
    document.onmousemove = function() {
    openWindow();
    };
    });


    Можно даже убрать документ реди и оставить:

    function openWindow(){
    document.onmousemove = null;
    alert("window was open");
    }
    document.onmousemove = function() {
    openWindow();
    };


    Итого - целая строка кода решает все проблемы и заставляет работать скрипт как надо.
    И все будет ок. ;)
     
  8. warg

    warg Постоялец

    Регистр.:
    26 июн 2007
    Сообщения:
    122
    Симпатии:
    122
    почему же не верно ...
    в указаных примерах событие вешается на конкретный елемент, если событие повесить на body или document, то будет срабатывать при движении в любом месте страницы ибо event propagation.

    да, именно это я и подразумевал под "удалять слушатель на событие".
    да, именно благодаря этому окна не будут плодиться.

    теперь полевые испытания этого варианта - пользователь переходит по ссылке на сайт, либо вбивает ее, не важно, что происходит дальше ?
    если он не умер до момента открытия страницы, то либо он подсознательно сдвинет курсор в сторону от контента, либо наоборот передвинет в рабочую область что-бы что-то сделать и тут хоп и окно.
    то есть на стороне пользователя разницы особой не будет и будет раздражать точно также :)
    разве что вешать на элемент tooltip, но это уже другая история...

    ну а в виду маркетинговых соображений, нужную информацию лучше вывести красивым, привлекающим внимание блоком в изначально видимом регионе на главной странице, тогда даже есть шанс что ее кто-то прочитает :)
    попап же любой будет вызывать неприятные чувства, поскольку отвлекает и заставляет делать лишние дейтвия что-бы его закрыть.
    web 2.0 ... даже серьезные ошибки и алерты стараются отображать как можно более ненавязчиво :)
     
  9. Nikita_Sp

    Nikita_Sp Создатель

    Регистр.:
    28 мар 2013
    Сообщения:
    15
    Симпатии:
    3
    ну так не критично же. В чем ваш способ лучше?

    Для этого есть setTimeout(); и плавное появление show('slow');

    Полевые условия: если чувак открыл окно в новой вкладке и тупо забил - открыл - а там уже окно. А так, он открыл - там ничего нет - курсор дернул - спустя 2 секунды - появилось окно. норм.

    ну это вы уже автору темы про всплывающие окна пишите. Я говорю с точки зрения правильности использования не onload а все таки маус евентов.