batanov Опубликовано 24 декабря, 2014 Жалоба Поделиться Опубликовано 24 декабря, 2014 на сайте в шаблоне есть горизонтальное меню, стоит задержка на свертывание в джаве "delay:700"она работает все четко, хочу поставить задержку на открытие меню, ради того что бы избежать мерцаний когда скролишь страницу и попадаешь мышкой на само меню.... нашел сам скрипт который (на мой нубовзгляд) отвечает как раз за это меню, скрит написан в строчку (к сожалению) и наверное по этой причине вообще не могу разобраться в нем... собственно подскажите куда и что вписать тут для этой задержки перед открытием меню. если сам скрипт тот еще нашел... (function(e,t,n){var r=e(); e.fn.dropdownHover=function(n){if("ontouchstart"in document)return this;r=r.add(this.parent());return this.each(function(){var i=e(this),s=i.parent(),o={delay:700,instantlyCloseOthers:!0},u={delay:e(this).data("delay"),instantlyCloseOthers:e(this).data("close-others")},a="show.bs.dropdown",f="hide.bs.dropdown",l=e.extend(!0,{},o,n,u),c;s.hover(function(e){if(!s.hasClass("open")&&!i.is(e.target))return!0;l.instantlyCloseOthers===!0&&r.removeClass("open");t.clearTimeout(c);s.addClass("open");i.trigger(a)},function(){c=t.setTimeout(function(){s.removeClass("open");i.trigger(f)},l.delay)});i.hover(function(){l.instantlyCloseOthers===!0&&r.removeClass("open");t.clearTimeout(c);s.addClass("open");i.trigger(a)});s.find(".dropdown-submenu").each(function(){var n=e(this),r;n.hover(function(){t.clearTimeout(r);n.children(".dropdown-menu").show();n.siblings().children(".dropdown-menu").hide()},function(){var e=n.children(".dropdown-menu");r=t.setTimeout(function(){e.hide()},l.delay)})})})};e(document).ready(function(){e('[data-hover="dropdown"]').dropdownHover()})})(jQuery,this); Цитата Ссылка на сообщение Поделиться на другие сайты
stroker Опубликовано 24 декабря, 2014 Жалоба Поделиться Опубликовано 24 декабря, 2014 на сайте в шаблоне есть горизонтальное меню, стоит задержка на свертывание в джаве "delay:700"она работает все четко, хочу поставить задержку на открытие меню, ради того что бы избежать мерцаний когда скролишь страницу и попадаешь мышкой на само меню.... нашел сам скрипт который (на мой нубовзгляд) отвечает как раз за это меню, скрит написан в строчку (к сожалению) и наверное по этой причине вообще не могу разобраться в нем... собственно подскажите куда и что вписать тут для этой задержки перед открытием меню. если сам скрипт тот еще нашел... (function(e,t,n){var r=e(); e.fn.dropdownHover=function(n){if("ontouchstart"in document)return this;r=r.add(this.parent());return this.each(function(){var i=e(this),s=i.parent(),o={delay:700,instantlyCloseOthers:!0},u={delay:e(this).data("delay"),instantlyCloseOthers:e(this).data("close-others")},a="show.bs.dropdown",f="hide.bs.dropdown",l=e.extend(!0,{},o,n,u),c;s.hover(function(e){if(!s.hasClass("open")&&!i.is(e.target))return!0;l.instantlyCloseOthers===!0&&r.removeClass("open");t.clearTimeout(c);s.addClass("open");i.trigger(a)},function(){c=t.setTimeout(function(){s.removeClass("open");i.trigger(f)},l.delay)});i.hover(function(){l.instantlyCloseOthers===!0&&r.removeClass("open");t.clearTimeout(c);s.addClass("open");i.trigger(a)});s.find(".dropdown-submenu").each(function(){var n=e(this),r;n.hover(function(){t.clearTimeout(r);n.children(".dropdown-menu").show();n.siblings().children(".dropdown-menu").hide()},function(){var e=n.children(".dropdown-menu");r=t.setTimeout(function(){e.hide()},l.delay)})})})};e(document).ready(function(){e('[data-hover="dropdown"]').dropdownHover()})})(jQuery,this); Изучайте (function(e, t, n) { var r = e(); e.fn.dropdownHover = function(n) { if ("ontouchstart" in document) return this; r = r.add(this.parent()); return this.each(function() { var i = e(this), s = i.parent(), o = { delay: 700, instantlyCloseOthers: !0 }, u = { delay: e(this).data("delay"), instantlyCloseOthers: e(this).data("close-others") }, a = "show.bs.dropdown", f = "hide.bs.dropdown", l = e.extend(!0, {}, o, n, u), c; s.hover(function(e) { if (!s.hasClass("open") && !i.is(e.target)) return !0; l.instantlyCloseOthers === !0 && r.removeClass("open"); t.clearTimeout(c); s.addClass("open"); i.trigger(a) }, function() { c = t.setTimeout(function() { s.removeClass("open"); i.trigger(f) }, l.delay) }); i.hover(function() { l.instantlyCloseOthers === !0 && r.removeClass("open"); t.clearTimeout(c); s.addClass("open"); i.trigger(a) }); s.find(".dropdown-submenu").each(function() { var n = e(this), r; n.hover(function() { t.clearTimeout(r); n.children(".dropdown-menu").show(); n.siblings().children(".dropdown-menu").hide() }, function() { var e = n.children(".dropdown-menu"); r = t.setTimeout(function() { e.hide() }, l.delay) }) }) }) }; e(document).ready(function() { e('[data-hover="dropdown"]').dropdownHover() }) })(jQuery, this) Цитата Ссылка на сообщение Поделиться на другие сайты
batanov Опубликовано 24 декабря, 2014 Автор Жалоба Поделиться Опубликовано 24 декабря, 2014 ооо... примного благодарен!! буду пробовать возиться =) Цитата Ссылка на сообщение Поделиться на другие сайты
batanov Опубликовано 24 декабря, 2014 Автор Жалоба Поделиться Опубликовано 24 декабря, 2014 stroker, вопрос такой:пытаться сделать лучше через delay или setTimeout ? Цитата Ссылка на сообщение Поделиться на другие сайты
chocolate_moles Опубликовано 24 декабря, 2014 Жалоба Поделиться Опубликовано 24 декабря, 2014 http://cherne.net/brian/resources/jquery.hoverIntent.html Цитата Ссылка на сообщение Поделиться на другие сайты
batanov Опубликовано 24 декабря, 2014 Автор Жалоба Поделиться Опубликовано 24 декабря, 2014 http://cherne.net/brian/resources/jquery.hoverIntent.htmlспасибо!пока чет не особо понимаю что в моем коде за что ответственно... познания в js 0,1 из 100 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.