Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Другие темы раздела
jQuery Drag'n drop или "как аттачить файлы" https://www.cyberforum.ru/ javascript-jquery/ thread1607646.html
При обычном input file файл отправляется при отправке формы. И при обработке добавленного материала, при разборе POST, мы обрабатываем файлы и добавляем в поле attach (таблицы news скажем) ID...
jQuery Выпадающий блок наезжает на блок который находится снизу. Как этого можно избежать?
Вот скрипт который позволяет выпадать блоку: <script type="text/javascript"> $(document).ready(function(){ $(".buttontext").click(function(){ $("#panel").slideToggle("normal"); return false;...
20 минут бездействия jQuery
Есть ли способ определить, что за последние 20 минут не нажималась ни одна клавиша? 20 минут это время жизни сессионной переменной и я хочу выдать пинг на сервер через это время,чтобы продлить время...
jQuery Наполнение содержимого в Java Script Добрый день,помогите,если можете.Вопрос такой:как менять содержимое страницы(изображения)с помощью кнопок следующий и предыдущий в Java Scripte и Html? https://www.cyberforum.ru/ javascript-jquery/ thread1607161.html
jQuery Не работает animate https://www.cyberforum.ru/ javascript-jquery/ thread1606887.html
Доброго времени суток. Столкнулся с такой проблемой: не срабатывает эффект animate, по отношению к свойствам opacity и marginTop, в браузерах Firefox и IE. В опере и хроме всё работает. Вот...
Подгрузить второй iframe после полной загрузки первого iframe jQuery
Добрый день, уважаемые форумчане. Есть проблема с iframe. На сайте есть два iframe. В одном iframe стоит видео плеер на youtube, который включает фоновое видео для сайта (видео-фон). Скорость...
А можно ли в конструкции .css('background', '') передавать URL бекграунда строкой? jQuery
Привет! У меня такая конструкция: есть n блоков с бекграундами. У каждого свой. При mouseenter они пропадают. При mouseleave обратно появляются. Мне интересно: кто сталкивался с неявным заданием...
jQuery Нужен знающий человек Ищу человека, который сможет помочь с сайтом оплата зависит от помощи. скайп redovoystalker (Нужен не дезайнер, а именно человек разбирающийся во скриптах) https://www.cyberforum.ru/ javascript-jquery/ thread1606599.html
jQuery Сдвигающееся вниз меню при клике. Как закрывать уже открытое меню при клике на другой пункт? https://www.cyberforum.ru/ javascript-jquery/ thread1606408.html
Добрый вечер. Есть меню Структура HTML: <nav class="navbar navbar-inverse" role="navigation"> <!-- Brand and toggle get grouped for better mobile display --> <div...
jQuery Меню перекрывает заголовки Добрый день ! проблема вот в чем при обновлении сайта если кликнуть на меню он переходит на нужный блок но перекрывает заголовок если второй раз нажать то он опускается на своё место... https://www.cyberforum.ru/ javascript-jquery/ thread1606361.html
0 / 0 / 2
Регистрация: 26.11.2015
Сообщений: 33
10.12.2015, 06:11  [ТС] 0

Не получается заставить работать одновременно два jQuery решения

10.12.2015, 06:11. Просмотров 1513. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено HellNHeaven как решение

Решение


Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
jQuery(document).ready(function($){
    var is_firefox = navigator.userAgent.indexOf('Firefox') > -1;
 
    //open team-member bio
    $('#cd-team').find('ul a').on('click', function(event){
        event.preventDefault();
        var selected_member = $(this).data('type');
        $('.cd-member-bio.'+selected_member+'').addClass('slide-in');
        $('.cd-member-bio-close').addClass('is-visible');
 
        // firefox transitions break when parent overflow is changed, so we need to wait for the end of the trasition to give the body an overflow hidden
        if( is_firefox ) {
            $('main').addClass('slide-out').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
                $('body').addClass('overflow-hidden');
            });
        } else {
            $('main').addClass('slide-out');
            $('body').addClass('overflow-hidden');
        }
 
    });
 
    //close team-member bio
    $(document).on('click', '.cd-overlay, .cd-member-bio-close', function(event){
        event.preventDefault();
        $('.cd-member-bio').removeClass('slide-in');
        $('.cd-member-bio-close').removeClass('is-visible');
 
        if( is_firefox ) {
            $('main').removeClass('slide-out').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
                $('body').removeClass('overflow-hidden');
            });
        } else {
            $('main').removeClass('slide-out');
            $('body').removeClass('overflow-hidden');
        }
    });
});
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
(function($) {
    if(!document.defaultView || !document.defaultView.getComputedStyle){ // IE6-IE8
        var oldCurCSS = jQuery.curCSS;
        jQuery.curCSS = function(elem, name, force){
            if(name === 'background-position'){
                name = 'backgroundPosition';
            }
            if(name !== 'backgroundPosition' || !elem.currentStyle || elem.currentStyle[ name ]){
                return oldCurCSS.apply(this, arguments);
            }
            var style = elem.style;
            if ( !force && style && style[ name ] ){
                return style[ name ];
            }
            return oldCurCSS(elem, 'backgroundPositionX', force) +' '+ oldCurCSS(elem, 'backgroundPositionY', force);
        };
    }
    
    var oldAnim = $.fn.animate;
    $.fn.animate = function(prop){
        if('background-position' in prop){
            prop.backgroundPosition = prop['background-position'];
            delete prop['background-position'];
        }
        if('backgroundPosition' in prop){
            prop.backgroundPosition = '('+ prop.backgroundPosition;
        }
        return oldAnim.apply(this, arguments);
    };
    
    function toArray(strg){
        strg = strg.replace(/left|top/g,'0px');
        strg = strg.replace(/right|bottom/g,'100%');
        strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
        var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
        return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
    }
    
    $.fx.step. backgroundPosition = function(fx) {
        if (!fx.bgPosReady) {
            var start = $.curCSS(fx.elem,'backgroundPosition');
            
            if(!start){//FF2 no inline-style fallback
                start = '0px 0px';
            }
            
            start = toArray(start);
            
            fx.start = [start[0],start[2]];
            
            var end = toArray(fx.options.curAnim.backgroundPosition);
            fx.end = [end[0],end[2]];
            
            fx.unit = [end[1],end[3]];
            fx.bgPosReady = true;
        }
        //return;
        var nowPosX = [];
        nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
        nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];           
        fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];
 
    };
})(jQuery);
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$(document).ready(function() {
    $("#menu ul li a").addClass("js");
    $("#menu ul li a").hover(
      function () {
        $(this).stop(true,true).animate({backgroundPosition:"(0 0)"}, 200);
        $(this).animate({backgroundPosition:"(0 -5px)"}, 150);
      }, 
      function () {
        $(this).animate({backgroundPosition:"(0 -149px)"}, 200);
 
      }
    );
 
});
Добавлено через 10 минут
Дурацкая система 5 минут на правку. В общем, 2й и 3й файлы - это компоненты меню и именно в них кроется разгадка, поскольку остальное всё работает с новыми версиями jQuery.

Добавлено через 8 минут
Такс, первая зацепка, с версии 1.8 нет такой функции curCSS, как переписать без неё?

Добавлено через 3 часа 39 минут
Нууу, помогите, пожалуйста. Отключаю jquery версии 1.4.1 - не работает меню, а если 1.11.0 - не работает боковая панель.

Добавлено через 8 часов 15 минут
В общем, разобрался сам, чуть поспав:
Меняем содержимое 2го документа(animated background) на:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
 * @author Alexander Farkas
 * v. 1.02
 *
 * Edited by Nelson Wells for jQuery 1.8 compatibility
 */
(function($) {
    $.extend($.fx.step,{
        backgroundPosition: function(fx) {
            if (fx.pos === 0 && typeof fx.end == 'string') {
                var start = $.css(fx.elem,'backgroundPosition');
                start = toArray(start);
                fx.start = [start[0],start[2]];
                var end = toArray(fx.end);
                fx.end = [end[0],end[2]];
                fx.unit = [end[1],end[3]];
            }
            var nowPosX = [];
            nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
            nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
            fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];
 
           function toArray(strg){
               strg = strg.replace(/left|top/g,'0px');
               strg = strg.replace(/right|bottom/g,'100%');
               strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
               var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
               return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
           }
        }
    });
})(jQuery);
Этот вариант поддерживает нынешние версии jQuery

Вернуться к обсуждению:
Не получается заставить работать одновременно два jQuery решения
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2015, 06:11
Готовые ответы и решения:

то нужно заставить одновременно работать слайдер и модальное окно обратной связи
Добрый день! Я новичек в программировании и вот столкнулся с обной проблемой, никак не получается...

Как заставить jquery-скрипт работать при перезагрузке контента AJAX-ом?
Добрый день! Вопрос следующий. У меня есть скрипт JQuery, который добавляет определенный код после...

Заставить работать два события
Выручайте! https://jsfiddle.net/z3z22t3v/ Ставим курсор в текстовое поле, удаляем символ в...

Не могу заставить два монитора работать одновременно
Всем привет! Такая проблема друзья: имеется монитор LG W2242, подключенный через HDMI, и второй...

1
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.