2017-01-10 3 views
0

Итак, когда пользователь нажимает кнопку, я хочу открыть popUp, в зависимости от ширины страницы, я хочу соответственно изменить размер popUp.bootstrap изменение размера страницы, не находя видовое окно

Нашли вкусный крошечное пример How to detect responsive breakpoints of Twitter Bootstrap 3 using JavaScript?

// Executes only in XS breakpoint 
if(viewport.is('xs')) { 
    // ... 
} 

// Executes in SM, MD and LG breakpoints 
if(viewport.is('>=sm')) { 
    // ... 
} 

// Executes in XS and SM breakpoints 
if(viewport.is('<md')) { 
    // ... 
} 

Проблема ракурс стрельбы не определен

Uncaught ReferenceError: viewport is not defined 
at <anonymous>:1:1 

, но я включил его в моей голове

<!--Viewport--> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 

Я также переместил сценарии начальной загрузки с головы на тело.

Есть ли у кого-нибудь идеи, что не так? ta

+0

Если это единственное требование ** «Я хочу открыть popUp, в зависимости от ширины страницы, я хочу соответственно изменить размер popUp». ** Не это решение для определения ширины всплывающего окна в стиле CSS в единицах '%' или 'vw'? – Banzay

ответ

1

Я думаю, что они означают «viewport» как строку, которую вы должны передать функции.

$(window).on('resize', cahngeViewport($(window).width())); 
 

 
function cahngeViewport(viewport) 
 
{ 
 
    if(viewport >= 1200) 
 
    { 
 
     console.log('lg'); 
 
    } 
 
    else if(viewport < 1200 && viewport > 768) 
 
    { 
 
    console.log('md'); 
 
    } 
 
    else if(viewport < 768 && viewport > 480) 
 
    { 
 
    console.log('sm'); 
 
    } 
 
    
 
    else if(viewport < 480) 
 
    { 
 
    console.log('xs'); 
 
    } 
 
} 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

так, то вы можете вернуть размер как строка и проверить, если (viewport.is ('мкр'))
и т.д ...

Надеются, что это помогает , Лучший, Идо.

+1

спасибо за вашу помощь. Перемещение ссылочных файлов в начало страницы, а не внутри тега тела, разрешило мою проблему (хотя в примере говорится, что они есть внутри тега body ... anywho), ваш ответ помог ... спасибо – John

1

Вам необходимо объявить переменную viewport в javascript.

В примере это делается с помощью IIFE следующим образом:

// Wrap IIFE around your code 
(function($, viewport){ 
    $(document).ready(function() { 

     // Executes only in XS breakpoint 
     if(viewport.is('xs')) { 
      // ... 
     } 

     // Executes in SM, MD and LG breakpoints 
     if(viewport.is('>=sm')) { 
      // ... 
     } 

     // Executes in XS and SM breakpoints 
     if(viewport.is('<md')) { 
      // ... 
     } 

     // Execute code each time window size changes 
     $(window).resize(
      viewport.changed(function() { 
       if(viewport.is('xs')) { 
        // ... 
       } 
      }) 
     ); 
    }); 
})(jQuery, ResponsiveBootstrapToolkit); 

Окно просмотра Исеть в ResponsiveBootstrapToolkit, так что вы должны включить responsive-bootstrap-toolkit в вашем проекте.

+0

спасибо за ваш Помогите. Перемещение ссылочных файлов в начало страницы, а не внутри тега тела, разрешило мою проблему (хотя в примере говорится, что они есть внутри тега body ... anywho), ваш ответ помог ... спасибо – John

 Смежные вопросы

  • Нет связанных вопросов^_^