fre*_*red 2 javascript jquery resize responsive-design
我有一些 js 代码,我只想在窗口处于“大”屏幕尺寸(假设为 900px)时运行。我想像 CSS 中的媒体查询一样使用它,这样代码就可以在特定的断点处打开和关闭。所以我假设我需要某种带有调整大小功能的条件,如下所示:
$(window).resize(function () {
var viewportWidth = $(window).width();
if (viewportWidth < 900) {
}
});
Run Code Online (Sandbox Code Playgroud)
然后将我想要执行的代码放在大括号之间,但它不起作用。
这是当屏幕大小调整为 900px 时我想要执行的代码:
function makeRowDiv(buildRow) {
var row = document.createElement('div');
row.className = 'row expanded row-spacing';
for (var i = 0; i < buildRow.length; ++i) {
row.appendChild(buildRow[i]);
}
return row;
}
window.onload = function () {
var work = document.getElementById('work'),
items = work.getElementsByTagName('div'),
newWork = document.createElement('div');
var buildRow = [],
count = 0;
for (var i = 0; i < items.length; ++i) {
var item = items[i];
if (item.className.indexOf('columns') == -1) {
continue;
}
// Extract the desired value.
var matches = /large-(\d+)\s* large-offset-(\d+)/.exec(item.className),
delta = parseInt(matches[1], 10) + parseInt(matches[2], 10);
if (count + delta > 12 && buildRow.length != 0) {
newWork.appendChild(makeRowDiv(buildRow));
count = 0;
buildRow = [];
}
buildRow.push(item.cloneNode(true));
count += delta;
}
if (buildRow.length != 0) {
newWork.appendChild(makeRowDiv(buildRow));
}
// Replace work with newWork.
work.parentNode.insertBefore(newWork, work);
work.parentNode.removeChild(work);
newWork.id = 'work';
};
Run Code Online (Sandbox Code Playgroud)
我假设有可能这样做
您也可以在 javascript 中使用媒体查询并将其用作您的条件
var mq = window.matchMedia( "(max-width: 900px)" );
if (mq.matches) {
// window width is less than 900px
} else {
// window width is more than 900px
}
Run Code Online (Sandbox Code Playgroud)