切换删除Div's基于浏览器大小
Toggle Remove Div's Based On Browser Size
我写了这个脚本,根据浏览器的窗口大小,在容器中的每第三个div之后添加一个div。
我下面的功能很好,但它只工作一次所以它添加div并删除它们,但如果窗口再次调整大小,就不会再添加它们。
如果div已经被删除,我该如何重新添加它们?
var addNth = (function () {
var len, i = 0, className, prevIndexes = [];
function isNew (el) {
return el.hasClass(className); // removed unnecessary parenthesis
}
return function (selector, html, nth, className ) {
var els = $( selector );
className = className || 'test';
if ( $.inArray(nth, prevIndexes) === -1 ) {
prevIndexes.push(nth);
$.each(els, function( index, el ) {
el = $(el);
if ( (i % nth) === 0 && i !== 0 ) {
if ( ! isNew(el) ) {
el.before( html );
}
}
i++;
});
i = 0;
}
}
})();
addNth('div.aDiv','<div class="myClass">Some Content</div>',3);
$(window).resize(function(e) {
var windowWidth = $(this).width(),
$myClass = $('div.myContainer > div.myClass');
if (windowWidth > 1024 && windowWidth < 1700) {
addNth('div.aDiv','<div class="myClass">Some Content</div>',3);
}
else {
$myClass.remove();
}
});
JSFiddle:https://jsfiddle.net/9vmg35sL/
您可以通过在addNth()中的if语句中添加||$.inArray(第n个,prevIndexes)===0来解决此问题。
试试下面的代码片段,然后进行全分页,现在尝试调整页面/窗口的大小。
或jsFiddle:http://jsfiddle.net/dk5tLb19/2/
var addNth = (function () {
var len, i = 0, className, prevIndexes = [];
function isNew (el) {
return el.hasClass(className); // removed unnecessary parenthesis
}
return function (selector, html, nth, className ) {
var els = $( selector );
className = className || 'test';
if ( $.inArray(nth, prevIndexes) === -1 || $.inArray(nth, prevIndexes) === 0 ) {
prevIndexes.push(nth);
$.each(els, function( index, el ) {
el = $(el);
if ( (i % nth) === 0 && i !== 0 ) {
if ( ! isNew(el) ) {
el.before( html );
}
}
i++;
});
i = 0;
}
}
})();
addNth('div.aDiv','<div class="myClass">Some Content</div>',3);
var divExists = true;
$(window).resize(function(e) {
var windowWidth = $(this).width(),
$myClass = $('div.myContainer > div.myClass');
if (windowWidth > 1024 && windowWidth < 1700) {
if(!divExists) {
addNth('div.aDiv','<div class="myClass">Some Content</div>',3);
divExists = true;
}
}
else {
$myClass.remove();
divExists = false;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myContainer">
<div class="aDiv">1</div>
<div class="aDiv">2</div>
<div class="aDiv">3</div>
<div class="aDiv">4</div>
<div class="aDiv">5</div>
<div class="aDiv">6</div>
<div class="aDiv">7</div>
<div class="aDiv">8</div>
<div class="aDiv">9</div>
<div class="aDiv">10</div>
<div class="aDiv">11</div>
<div class="aDiv">12</div>
<div class="aDiv">13</div>
<div class="aDiv">14</div>
<div class="aDiv">15</div>
</div>
试试下面的代码片段,然后进行全分页,现在尝试调整页面/窗口的大小。
相关文章:
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- php httponly cookie在浏览器关闭时被删除
- 删除客户端浏览器上不需要的内容
- fullcalendar在删除导致浏览器挂起的多个事件时速度较慢
- 如何从浏览器中获取cookie,从另一个应用程序中删除
- 移动浏览器-如何删除拖动到水平滚动
- 使用javascript删除浏览器的所有Cookie
- 通过javascript从浏览器历史记录中删除URL
- 如何在浏览器中禁用或删除粘贴上下文菜单项
- 删除浏览器底部链接的目标Url's页
- 关闭浏览器时删除的数据
- 浏览器如何删除不再使用的本地存储
- jQuery:删除浏览器生成的 title 属性
- 删除谷歌浏览器和IE浏览器中文本区域中的选定文本
- 删除浏览器底部在 jQuery UI 选项卡的鼠标悬停上显示的 URL
- 如果浏览器是IE10,如何删除脚本
- 如何删除浏览器在一次请求期间添加的所有 Cookie
- 如何从浏览器的 cookie 存储中删除会话 ID
- 跨浏览器事件处理程序(添加、删除、触发器)
- 如何从浏览器缓存中删除图像