【问题标题】:Dynamically toggle class based on div's width根据 div 的宽度动态切换类
【发布时间】:2023-04-10 11:53:02
【问题描述】:

所以我有一个包含内容的容器和两个侧边抽屉(左/右),当它们打开时,它们会挤压内容宽度。

<div class="container">
    <div">sidepanel-left</div>
    <div class="content">content</div>
    <div>sidepanel-right</div>
</div>

例如:当sidepanel-left 和right 都靠近时,“content” div 的宽度为1000px。当一个侧面板打开时,“内容” div 被推到 800 像素,因为侧面板是 200 像素宽度。当两个侧面板都打开时,“内容”div 为 600px。

我想要一个脚本,当“内容”div 小于/大于 700 像素时,它可以动态添加/删除“.small”类。

这样,如果您打开或关闭任何或两个侧面板,“内容”div 将接收它的类“.small”,而无需调整窗口大小或重新加载页面。

我将使用该类在“内容”div 中隐藏/显示其他 div。

我已经尝试过这个插件 (http://benalman.com/code/projects/jquery-resize/examples/resize/),但它不会动态添加/删除类。当我打开两个侧边栏时它会添加类,但如果我关闭一个,这使得 div“内容”大于 700px,它不会删除它。

jQuery(document).ready(function($) {    
     $(".content").resize(function() {
        if ($(".content").width() < 700 ) {
           $('.content').addClass('small');
        } else {
            $('.content').removeClass('small');
        }
    });
}); 

提前致谢:)

B.

[编辑]

网站是:www.unicyclist.info 单击右上角和左上角的 [...] 可以激活侧面板。

【问题讨论】:

  • 你能给我们一个代码示例吗?也许是一个 jsfiddle?
  • 为什么 var 在那里?
  • Oups,var 绝对是我的错误!对不起! :s
  • 如“这是一个转录错误”或“这是这个问题的问题”?如果是后者,想在下面将我的答案标记为正确吗?
  • 您可以在这里查看我的网站:unicyclist.info 可以通过单击每个角落标题栏上的左侧或右侧 [...] 来激活侧面板。 “.content” div 以“.es-content”类命名。我将在我的初始帖子中添加一张图片。

标签: javascript jquery css joomla3.0


【解决方案1】:

JQuery resize() 仅在浏览器窗口变化时触发!

您可以创建自己的函数来检查 div 的大小是否发生了变化:

contentWidth = -1;

function checkForSizeChange() {
    var $content = $('.content'),
        width = $content.width();

    if(contentWidth != width) {
        if(width < 700) {
            $content.addClass('small');
        } else {
            $content.removeClass('small');
        }       
        contentWidth = width;
    }
}

setInterval(checkForSizeChange, 100);

【讨论】:

【解决方案2】:

很确定var 是您的错误。

jQuery(document).ready(function($) {    
    $(".content").resize(function() {
        $(this).toggleClass('small', ($(this).width() < 700) );    
    });
}); 

【讨论】:

  • 您的代码正在添加该类,但在关闭侧面板时并未将其删除。请参阅我编辑的帖子,了解更多信息和链接。非常感谢您花时间帮助我!
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 2011-08-06
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
相关资源
最近更新 更多