2015-10-13 6 views
1

Я пытаюсь запустить свой fancybox для видовых экранов> = 768px и запустить мой swipebox для видовых экранов < 768px. К сожалению, ни один из них не открывается сейчас ... что мне не хватает? Спасибо за помощь! У меня есть тонны CSS, поэтому я просто добавляю JS (я уверен, что это синтаксическая ошибка ...).JS matchMedia if-statement

// JavaScript Document 
 

 
$(document).ready(function() { 
 
if (window.matchMedia("(min-width: 768px)").matches) { 
 
    
 
\t $(".fancybox").fancybox({ 
 
\t \t //width: '70%', 
 
\t \t //height: '70%', 
 
     helpers: { 
 
     overlay: { 
 
      locked: false 
 
     } 
 
     }, 
 
    'beforeLoad': function(){ 
 
     disable_scroll(); 
 
     }, 
 
    'afterClose': function(){ 
 
     enable_scroll(); 
 
     } 
 
\t \t 
 
\t }); 
 
\t 
 
}); 
 
var keys = [37, 38, 39, 40]; 
 

 
    function preventDefault(e) { 
 
     e = e || window.event; 
 
     if (e.preventDefault) e.preventDefault(); 
 
     e.returnValue = false; 
 
    } 
 

 
    function keydown(e) { 
 
     for (var i = keys.length; i--;) { 
 
      if (e.keyCode === keys[i]) { 
 
       preventDefault(e); 
 
       return; 
 
      } 
 
     } 
 
    } 
 

 
    function wheel(e) { 
 
     preventDefault(e); 
 
    } 
 

 
    function disable_scroll() { 
 
     if (window.addEventListener) { 
 
      window.addEventListener('DOMMouseScroll', wheel, false); 
 
     } 
 
     window.onmousewheel = document.onmousewheel = wheel; 
 
     document.onkeydown = keydown; 
 
    } 
 

 
    function enable_scroll() { 
 
     if (window.removeEventListener) { 
 
      window.removeEventListener('DOMMouseScroll', wheel, false); 
 
     } 
 
     window.onmousewheel = document.onmousewheel = document.onkeydown = null; 
 
    } 
 
} else { 
 
    ;(function($) { 
 

 
\t $('.swipebox').swipebox(); 
 

 
})(jQuery); 
 
}

+0

«Я уверен, что это синтаксическая ошибка» - что заставляет вас так говорить? Если вы знаете ошибку, добавьте ее в вопрос. Вы смотрели в Консоли, когда бежали, чтобы увидеть? – Christian

+0

Я немного новобранец, когда речь заходит о JS ... Я сказал, что, поскольку индивидуально работает swipebox и fancybox, но вместе с инструкцией if ничего не происходит больше (нет открытого окна) ... поэтому я предположил, что это должна быть синтаксическая ошибка. Я попытался понять это на консоли, но для меня это слишком сложно понять. – Ollie

+0

Откройте Chrome, откройте инструменты для разработчиков (меню> дополнительные инструменты> инструменты разработчика), а затем консоль (или, если вы находитесь на mac, option + Ctrl + J). Затем обновите страницу. Серьезно, если вы не можете сделать базовые проблемы с консолью, мы не достигнем очень далеко. – Christian

ответ

1

Попробуйте это. Я также обновляю скрипку.

Fiddle here.

$(document).ready(function() { 
if (window.matchMedia("(min-width: 768px)").matches) { 

    $(".fancybox").fancybox({ 
    //width: '70%', 
    //height: '70%', 
     helpers: { 
     overlay: { 
      locked: false 
     } 
     }, 
    'beforeLoad': function(){ 
     disable_scroll(); 
     }, 
    'afterClose': function(){ 
     enable_scroll(); 
     } 

    }); 


var keys = [37, 38, 39, 40]; 

    function preventDefault(e) { 
     e = e || window.event; 
     if (e.preventDefault) e.preventDefault(); 
     e.returnValue = false; 
    } 

    function keydown(e) { 
     for (var i = keys.length; i--;) { 
      if (e.keyCode === keys[i]) { 
       preventDefault(e); 
       return; 
      } 
     } 
    } 

    function wheel(e) { 
     preventDefault(e); 
    } 

    function disable_scroll() { 
     if (window.addEventListener) { 
      window.addEventListener('DOMMouseScroll', wheel, false); 
     } 
     window.onmousewheel = document.onmousewheel = wheel; 
     document.onkeydown = keydown; 
    } 

    function enable_scroll() { 
     if (window.removeEventListener) { 
      window.removeEventListener('DOMMouseScroll', wheel, false); 
     } 
     window.onmousewheel = document.onmousewheel = document.onkeydown = null; 
    } 
} else { 
    (function($) { 

    $('.swipebox').swipebox(); 

    })(jQuery); 
} 
}); 
+1

работает! большое спасибо!! – Ollie

+0

нет проблем. :) Просто некоторые небольшие проблемы синтаксиса. – Christian