当前位置: 首页 > 知识库问答 >
问题:

当每个div具有相同的类时,在高度上扩展div

颛孙和颂
2023-03-14

我目前的问题是,我正在用一些小文章制作新闻提要。所有的文章都有相同的类,这就是逻辑。每篇文章的右上角都有一个向下的箭头。

我希望如果人们单击箭头(这是一个. svg文件),内容会展开。容器的高度为78px,如果单击按钮,它应该会展开,因此高度应该是自动的。

我的问题是我不知道用什么语言做什么。jQuery或者我读到的是JS。因为如果我正常点击按钮,这个类的所有内容都会扩展,或者得到自动高度的css。我只希望1个容器扩展。我想一些主动元素或聚焦方法?我不知道。

例子

八月1,2014在13:37

Lorem ipsum dolor sit amet,concetetur adipising elit,sed do eiusmod tempor incidiut ut labore et dolore magna aliqua。Ut enim ad minim veniam,quis nostrud execution ullamco laboris nisi Ut aliquip ex ea commodo consequat。Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。除非圣奥恰塔特·库皮达特(sint occaecat cupidatat)非冒失,否则他必须为自己的行为负责。

HTML

<article class="newsfeed_item">
<img src="../images/arrow_down.svg" alt="" class="expand" />
<div class="newsfeed_image"><img src="../images/example-img.jpg" alt="" /></div>
<h1>This is a title</h1>
<footer class="extra_info">August 1, 2014 at 13:37</footer>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</article>

CSS

article.newsfeed_item               {border-bottom:1px solid #ccc; width:100%; height:78px; clear:both; position:relative; overflow:hidden;}
article.newsfeed_item h1            {}
article.newsfeed_item p             {padding-bottom:5px; line-height:16px;}
article.newsfeed_item .expand       {height:20px; position:absolute; top:10px; right:0; padding:0 5px;}
article.newsfeed_item .expand:hover {cursor:pointer; background:#a2c139;}
.expanded                           {height:auto;}
footer.extra_info                   {font-family:"GudeaRegular"; font-size:10px; color:#999;}

当用户点击带有“expand”类的图片时,有什么帮助吗?感谢您的帮助。

共有2个答案

史智志
2023-03-14
匿名用户

您可以为此使用jQuery。

我给你做了这个切换视图的函数,意思是第一次点击它显示更多,第二次点击,它显示更少。该函数由('Click',...)部分的触发。

通常您会将高度设置为自动,但这不起作用。所以我们首先需要知道实际高度是多少。为此,我们将CSS高度设置为auto,然后获取高度,并将其重置为原始高度。然后我们对其进行动画处理。

$(document).ready( function() {
    $("img.expand").on('click', function() {
        var p = $(this).parent();
        var currentHeight = p.height();

        if( currentHeight == 78 ) {
            p.height('auto'); /* set to auto */
            var newHeight = p.height(); /* get the actual height */
            p.height( currentHeight ); /* reset the height */
        }
        else {
            var newHeight = "78px";
        }
        $(this).parent().animate({ height : newHeight }, 1000);
    });    
});

另外,请参阅此演示。


如果您只想将其展开,而不想切换,则可以去掉一些行并使用以下代码:

$(document).ready( function() {
    $("img.expand").on('click', function() {
        var p = $(this).parent();
        var currentHeight = p.height();
        var newHeight = p.height('auto').height(); 
        p.height( currentHeight );        
        $(this).parent().animate({ height : newHeight }, 1000);
    });    
});

还有一个演示。

简宏义
2023-03-14

编辑:新答案应该会更好。

HTML

`<div id='newsbox'><img id='toggler'>toggle me</div>`

JS公司

$("#toggler").click(function(){
    $("#newsbox").animate({height:50 - $("#newsbox").height()},200);
});

此外,仍然不要忘记包括jQuery

 类似资料:
  • 我的钢笔 http://codepen.io/helloworld/pen/dqgdk 我想垂直对齐包装器div内部的3个div。3个div中的每一个都应该有33%的高度。我可以使布局工作时,div有一个33px的高度,但我需要它的百分比,因为包装div的高度动态变化。有时是100px的高度,有时是70px等等。 我只想所有3总是正确的使用百分比高度对齐。 将divs与百分比对齐的方法是什么? H

  • 我试图做一个面板的响应性设计,由一个图像和另一个容器组成,内部有自己的元素,两个并排。 我有一个父div,里面有一个img和另一个div标签。这两个子标记是浮动块,宽度为%,可以工作。 问题是,当我收缩页面时,img会收缩以遵守%width规则,其高度也会收缩,并且应该保持这种方式,但是侧面的div不会将其高度更改为与同级图像相同。 我将它们包裹在另一个div中,并将内部div放在高处:100%希

  • 问题内容: 在下面的代码中,我希望带有“ y”的div将div的高度与3个“ x”相匹配。 需要注意的是内部div是浮动的。 问题答案: 如果您不反对使用jQuery,可以使用EqualHeight,它应该做您想要的

  • 问题内容: 我有2个div并排。我不知道它们的高度,它根据内容而改变。有没有一种方法可以确保它们始终保持相同的高度,即使其中一个拉伸时也只能使用CSS? 我做了一个小提琴来展示。我希望红色和蓝色的div高度相同… 这是CSS: 问题答案: 您可以尝试使用float来代替使用float。但是,您可能会发现某些较旧的浏览器不了解此规则。见下文:

  • 问题内容: 如您在下面的CSS中所看到的,我想将自己定位在之前。这是因为我当前正在开发的网站也可以在移动设备上工作,该网站应该位于底部,因为它包含了我想要在移动设备内容下方显示的导航。-为什么没有2个母版页?这是在整个HTML中重新定位的仅有2个,因此,此较小更改的2个母版页是一个过大的功能。 HTML: CSS: 具有动态高度,因为不同的子站点可能具有更多或更少的导航项。 我知道绝对定位元素已从

  • 问题内容: 我有这些嵌套的div,我需要主容器扩展(在高度上)以容纳内部的DIV CSS是这样的: 我的问题是无法拉伸以容纳所有内部div,结果它们一直在后台运行。 考虑到以上情况,如何解决此问题? 问题答案: 您需要在div关闭之前强制输入a 。我可能会将其移入div并将CSS设置为: 更新: 这个问题仍然有相当多的流量,所以我想使用CSS3中称为“弹性框”或“弹性框”的新布局模式,以一种现代的