вставить javascript в html-страницу на основе размера видового экрана [дубликат]

Я бы предположил, что лучше использовать ajax и загрузить элемент svg с другой страницы.

$('.container').load(href + ' .svg_element');

Где href - расположение страницы с помощью svg. Таким образом, вы можете избежать любых неудобных эффектов, которые могут возникнуть при замене содержимого html. Кроме того, не забудьте развернуть svg после его загрузки:

$('.svg_element').unwrap();
167
задан TylerH 20 August 2015 в 21:32
поделиться

9 ответов

Используйте jQuery для получения ширины окна.

if ($(window).width() < 960) {
   alert('Less than 960');
}
else {
   alert('More than 960');
}
350
ответ дан aziz punjani 15 August 2018 в 18:32
поделиться
  • 1
    Обратите внимание, что $ (window) .width () не является согласованным во всех браузерах, если полоса прокрутки видима. Я обнаружил, что использование javascript media-запросов намного надежнее. – forsvunnet 30 December 2013 в 14:36
  • 2
    @forsvunnet Эта ссылка мертва. – Shah Abaz Khan 7 June 2018 в 11:19

использовать

$(window).width()

или

$(document).width()

или

$('body').width()
7
ответ дан Guard 15 August 2018 в 18:32
поделиться

Попробуйте этот код

if ($(window).width() < 960) {
 alert('width is less than 960px');
}
else {
 alert('More than 960');
}

   if ($(window).width() < 960) {
     alert('width is less than 960px');
    }
    else {
     alert('More than 960');
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0
ответ дан JIBIN BJ 15 August 2018 в 18:32
поделиться

Возможно, вы захотите объединить его с событием изменения размера:

 $(window).resize(function() {
  if ($(window).width() < 960) {
     alert('Less than 960');
  }
 else {
    alert('More than 960');
 }
});

Для RJ:

var eventFired = 0;

if ($(window).width() < 960) {
    alert('Less than 960');

}
else {
    alert('More than 960');
    eventFired = 1;
}

$(window).on('resize', function() {
    if (!eventFired) {
        if ($(window).width() < 960) {
            alert('Less than 960 resize');
        } else {
            alert('More than 960 resize');
        }
    }
});

Я попробовал http: //api.jquery. com / off / без успеха, поэтому я пошел с флагом eventFired.

117
ответ дан jk. 15 August 2018 в 18:32
поделиться
  • 1
    Обертка в событии изменения размера делает его только при изменении размера, а не при загрузке. – Ted 23 May 2012 в 00:41
  • 2
  • 3
    Эй, не могли бы вы объяснить, как я собираюсь объединить это событие изменения размера? У меня есть функция, которую я бы хотел только загрузить, если ширина браузера больше 960 пикселей в ширину, будь то размер окна при начальной загрузке страницы или до / после изменения размера. Если я просто добавлю этот фрагмент после моего первого определения ширины окна, функция будет уже загружена, если пользователь начнет с ширины браузера более 960 пикселей, а затем изменит размер. Возможно ли, возможно, очистить уже запущенную функцию, если размер браузера будет изменен до ширины ниже 960 пикселей? – R.J. 2 September 2012 в 07:45
  • 4
    @ R.J. см. правки выше. Я не знаю, что вы подразумеваете под «ясным» событием, поэтому я пошел с предотвращением повторного выстрела. – jk. 2 September 2012 в 15:42
  • 5
    Фантастично, я пытался выяснить, как привязать функцию equalHeights при изменении размера, но только для ширины больше 768. Это работает как шарм. благодаря – Danny Englander 13 March 2013 в 21:35
// Adds and removes body class depending on screen width.
function screenClass() {
    if($(window).innerWidth() > 960) {
        $('body').addClass('big-screen').removeClass('small-screen');
    } else {
        $('body').addClass('small-screen').removeClass('big-screen');
    }
}

// Fire.
screenClass();

// And recheck when window gets resized.
$(window).bind('resize',function(){
    screenClass();
});
5
ответ дан leymannx 15 August 2018 в 18:32
поделиться

Я бы предложил (jQuery нужен):

/*
 * windowSize
 * call this function to get windowSize any time
 */
function windowSize() {
  windowHeight = window.innerHeight ? window.innerHeight : $(window).height();
  windowWidth = window.innerWidth ? window.innerWidth : $(window).width();

}

//Init Function of init it wherever you like...
windowSize();

// For example, get window size on window resize
$(window).resize(function() {
  windowSize();
  console.log('width is :', windowWidth, 'Height is :', windowHeight);
  if (windowWidth < 768) {
    console.log('width is under 768px !');
  }
});

Добавлено в CodePen: http://codepen.io/moabi/pen/QNRqpY?editors=0011

Затем вы можете легко получить ширину окна с помощью var: windowWidth и Height with: windowHeight

, в противном случае получить js-библиотеку: http://wicky.nillia.ms/ enquire.js /

8
ответ дан moabi 15 August 2018 в 18:32
поделиться

нет, все это не сработает. Вам нужно this !!!

Попробуйте следующее:

if (screen.width <= 960) {
  alert('Less than 960');
} else if (screen.width >960) {
  alert('More than 960');
}
-9
ответ дан Tiffany Lowe 15 August 2018 в 18:32
поделиться
  • 1
    Проводка ссылки не является ответом. – nedaRM 18 September 2013 в 06:53
  • 2
    извините, что я был в порядке! Подожди, я делаю это прямо сейчас ... – Saurav Chaudhary 25 October 2013 в 15:35
  • 3
    обратите внимание, если screen.width (наилучшим образом захваченный с помощью document.body.clientWidth при использовании vanilla JS) равен & lt; = 960 (что означает здесь оператор if), тогда единственная другая опция (ELSE - screen.width & gt; 960), поэтому используя else, если здесь является избыточным. используйте document.body.clientWidth <=960 ? handleSmallerThan960() : handleLargerThan960() или какой-либо вариант. НЕТ необходимости, если (избыточный код) – Zargold 11 April 2018 в 19:12

Вы также можете использовать медиа-запрос с javascript.

const mq = window.matchMedia( "(min-width: 960px)" );

if (mq.matches) {
       alert("window width >= 960px");
} else {
     alert("window width < 960px");
}
3
ответ дан user 15 August 2018 в 18:32
поделиться

Я знаю, что опаздываю, чтобы ответить на это, но я надеюсь, что это поможет кому-либо, у кого есть аналогичная проблема. Он также работает, когда страница обновляется по любой причине.

$(document).ready(function(){

if ($(window).width() < 960 && $(window).load()) {
        $("#up").hide();
    }

    if($(window).load()){
        if ($(window).width() < 960) {
        $("#up").hide();
        }
    }

$(window).resize(function() {
    if ($(window).width() < 960 && $(window).load()) {
        $("#up").hide();
    }
    else{
        $("#up").show();
    }

    if($(window).load()){
        if ($(window).width() < 960) {
        $("#up").hide();
        }
    }
    else{
        $("#up").show();
    }

});});
2
ответ дан Veljko Stefanovic 15 August 2018 в 18:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: