我在 jQuery 中找到了一个简单的方法,它允许我根据查看者的浏览器宽度在其他 div 之后添加 div。所以我要做的是告诉浏览器在第 30 个“内部”div 之后插入“test5”div,如果浏览器宽度超过 500px。如果浏览器宽度小于 500px,我也会告诉它删除这个 div。我还使用多个 div 进行了此操作,因此当浏览器宽度小于 500 像素时,它会隐藏放置在第 30 个“内部”div 之后的原始 div,然后再显示四个 div(test、test2、test3 和 test4)。所以我让整个事情与多个 div 一起工作。这很棒。
现在,我想nth-child
为每个指定的浏览器宽度更改 div 的位置。所以我现在必须这样做的方法是为一个宽度插入 5 个 div,为另一个宽度隐藏它们,为另一个宽度插入另外 5 个 div,为另一个宽度隐藏它们等等。与其不断添加 5 个 div,然后为每个不同的浏览器宽度隐藏它们,我只想为不同的浏览器宽度更改第 n 个子项的位置。所以这是我的旧代码.. 请注意,对于这个例子,我只使用 5 个 div,当浏览器宽度超过 500px 时显示 1 个,然后当浏览器宽度小于 500px 时显示 4 个 div..
这是旧代码:
var $window = $(window);
var resized=false;
var resized500=false;
function checkWidth() {
var windowsize = $window.width();
if (windowsize > 440) {
if(resized==false){
$( '.inner:nth-child(5)' ).after( '<div class="test">');
$( '.inner:nth-child(10)' ).after( '<div class="test2">');
resized=true;
}
}
if (windowsize > 500) {
if(resized500==false){
$( '.inner:nth-child(30)' ).after( '<div class="test3">');
resized500=true;
}
}
if (windowsize >= 500) {
$('.test, .test2').remove();
resized=false;
}
if (windowsize <= 500) {
$('.test3').remove();
resized500=false;
}
}
// Execute on load
checkWidth();
// Bind event listener
$(window).resize(checkWidth);
这是用于演示此代码的旧 jsfiddle(您必须调整 HTML 窗口的大小才能看到 div 出现和消失):
我想提出一种方法,它不会隐藏 div 或在浏览器宽度更改时添加新的,而是我希望它只nth-child
为每个指定的浏览器宽度重新定位 div。我不确定我会如何做到这一点,但这里是一个起始的基本 jquery 代码,我认为它可能如何工作,以及一个 jsfiddle。出于示例目的,这是使用 3 个浏览器宽度。
var $window = $(window);
var resized=false;
var resized500=false;
var resized600=false;
function checkWidth() {
var windowsize = $window.width();
if (windowsize > 440 && windowsize < 500) {
//if the window is in between the sizes of 440 and 500px
if(resized==false){
$( '.inner:nth-child(5)' ).after( '<div class="test">');
$( '.inner:nth-child(10)' ).after( '<div class="test2">');
$( '.inner:nth-child(12)' ).after( '<div class="test3">');
$( '.inner:nth-child(15)' ).after( '<div class="test4">');
resized=true;
}
}
if (windowsize > 500 && windowsize < 600) {
//if the window is in between the sizes of 500 and 600px
if(resized500==false){
// code that repositions all four test divs up one number (5 to 6, 10 to 11, etc.)
resized500=true;
}
}
if (windowsize > 600 && windowsize < 700) {
//if the window is in between the sizes of 600 and 700px
if(resized600==false){
// code that repositions all four test divs up one number again.(6 to 7, 11 to 12, etc.)
resized600=true;
}
}
}
// Execute on load
checkWidth();
// Bind event listener
$(window).resize(checkWidth);
这是这个早期基本代码的 jsFiddle(由于没有为各种浏览器宽度设置值,因此不能完全工作):
所以只是快速回顾一下:
我有通过 nth-child 放置在其他 div 之后的 div,这些 div 根据查看者浏览器的宽度出现和消失。目前,我必须通过 nth-child 将 div 放置在正确的位置(这很好),然后使 div 消失以获取分辨率,然后重新出现新的,我必须对所有浏览器宽度重复此过程/决议。我想这样做,所以我通过 nth-child 插入这个 div(就像我现在正在做的那样)但不必隐藏 div 并为每个浏览器宽度显示新的,我希望能够改变不同浏览器宽度的第 n 个子位置。
如果有人知道此问题的解决方案,请随时留下答案,甚至可以使用有效的 jsFiddle 演示。:)