jQuery: как определить ширину окна на лету?
У меня есть элемент прокрутки на моей странице (с плагином jQuery jScrollPane). То, что я хочу сделать, - это способ отключить окно прокрутки, определив ширину окна браузера. Я делаю отзывчивый макет, и я хочу, чтобы эта функция прокрутки была отключена, когда браузер находится ниже определенной ширины. Я могу заставить его работать, когда я обновил страницу, но когда я изменить размер окна браузера значение ширины не обновляется на лету.
сейчас, если я начну из окна, которое имеет ширину 1000px, затем измените размер до 350px, функция прокрутки остается. Я хочу, чтобы функция прокрутки отключилась, как только ширина браузера достигнет 440 пикселей.
вот код у меня есть до сих пор..
var windowsize = $(window).width();
$(window).resize(function() {
var windowsize = $(window).width();
});
if (windowsize > 440) {
//if the window is greater than 440px wide then turn on jScrollPane..
$('#pane1').jScrollPane({
scrollbarWidth:15,
scrollbarMargin:52
});
}
4 ответа:
изменение переменной не выполняет магический код внутри
if
-блок. Поместите общий код в функцию, затем свяжите событие и вызовите функцию:$(document).ready(function() { // Optimalisation: Store the references outside the event handler: var $window = $(window); var $pane = $('#pane1'); function checkWidth() { var windowsize = $window.width(); if (windowsize > 440) { //if the window is greater than 440px wide then turn on jScrollPane.. $pane.jScrollPane({ scrollbarWidth:15, scrollbarMargin:52 }); } } // Execute on load checkWidth(); // Bind event listener $(window).resize(checkWidth); });
поместите ваше условие if внутрь
resize
функция:var windowsize = $(window).width(); $(window).resize(function() { windowsize = $(window).width(); if (windowsize > 440) { //if the window is greater than 440px wide then turn on jScrollPane.. $('#pane1').jScrollPane({ scrollbarWidth:15, scrollbarMargin:52 }); } });
Я не знаю, полезно ли это для вас, когда вы изменяете размер своей страницы:
$(window).resize(function() { if(screen.width == window.innerWidth){ alert("you are on normal page with 100% zoom"); } else if(screen.width > window.innerWidth){ alert("you have zoomed in the page i.e more than 100%"); } else { alert("you have zoomed out i.e less than 100%"); } });
ниже то, что я сделал, чтобы скрыть какой-то элемент Id, когда размер экрана ниже 768px, и показать, когда выше 768px. Он отлично работает.
var screensize= $( window ).width(); if(screensize<=768){ if($('#column-d0f6e77c699556473e4ff2967e9c0251').length>0) { $('#column-d0f6e77c699556473e4ff2967e9c0251').css('display','none'); } } else{ if($('#column-d0f6e77c699556473e4ff2967e9c0251').length>0) { $('#column-d0f6e77c699556473e4ff2967e9c0251').removeAttr( "style" ); } } changething = function(screensize){ if(screensize<=768){ if($('#column-d0f6e77c699556473e4ff2967e9c0251').length>0) { $('#column-d0f6e77c699556473e4ff2967e9c0251').css('display','none'); } } else{ if($('#column-d0f6e77c699556473e4ff2967e9c0251').length>0) { $('#column-d0f6e77c699556473e4ff2967e9c0251').removeAttr( "style" ); } } } $( window ).resize(function() { var screensize= $( window ).width(); changething(screensize); });