【问题标题】:Character limit or content height limit for show more see less显示更多看到更少的字符限制或内容高度限制
【发布时间】:2015-08-03 05:30:56
【问题描述】:

如果没有更多文字可查看,我需要让“查看更多”按钮消失。我认为最好的方法是在文本接近 365px 容器高度时进行字符计数并粗略计算。

有没有人有建议以及如何最好地编辑脚本以引入字符规则?

    $("[id^=infopanelcollapse]").click(function() {
        $(this).toggleClass("btn-more");
        $(this).prev().toggleClass("expand");
    });

        $("[id^=infopanelcollapse]").click(function() {
            $(this).toggleClass("btn-more");
            $(this).prev().toggleClass("expand");
        });
.product-overflow {
  max-height: 365px;
  min-height: 365px;
  overflow: hidden;
  position: relative;
}
.product-overflow.expand {
  max-height: none;
  height: auto;
  overflow: hidden;
}
.expand-button .less, .expand-button.btn-more .more {
  display: none;
}
.expand-button .more, .expand-button.btn-more .less {
  display: block;
}
.expand-button {
text-align:center;
text-decoration:underline;
cursor:pointer;
}
.product-overflow:before {
  content: "\00a0";
  height: 120px;
  width: 100%;
  position: absolute;
  display: block;
  bottom: 0;
  z-index: 1;
  background-image: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);
}
.product-overflow.expand:before {
  height: 0;
}
<div class="row product-overflow">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at dolor lacinia, bibendum nunc non, auctor ipsum. Quisque non placerat mauris, efficitur interdum justo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi ac risus eu ante rhoncus fringilla in vel dui. Pellentesque felis libero, mollis sit amet faucibus eget, placerat eu nibh. Curabitur auctor eget nisl eu faucibus. Aenean id elementum mi, ac maximus eros. Aenean bibendum felis vitae metus dictum cursus. Praesent ac nisl eros. Proin mi justo, molestie a leo vel, facilisis vehicula quam. In euismod pulvinar dignissim. Ut iaculis nulla vel lacinia dapibus. Maecenas quis ex ut purus facilisis mattis et in eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at dolor lacinia, bibendum nunc non, auctor ipsum. Quisque non placerat mauris, efficitur interdum justo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi ac risus eu ante rhoncus fringilla in vel dui. Pellentesque felis libero, mollis sit amet faucibus eget, placerat eu nibh. Curabitur auctor eget nisl eu faucibus. Aenean id elementum mi, ac maximus eros. Aenean bibendum felis vitae metus dictum cursus. Praesent ac nisl eros. Proin mi justo, molestie a leo vel, facilisis vehicula quam. In euismod pulvinar dignissim. Ut iaculis nulla vel lacinia dapibus. Maecenas quis ex ut purus facilisis mattis et in eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; 
</div>

<div id="infopanelcollapse" class="expand-button text-center"><span class="more">See more <span class="halflings chevron-down"></span></span><span class="less">See less <span class="halflings chevron-up"></span></span></div>

大家好 JSFiddle

【问题讨论】:

  • 只需使用 .length() ,这将是字符数对吗?还有没有更好的方法来做到这一点?关于溢出的CSS?也许看看会有所帮助......:stackoverflow.com/questions/9333379/…
  • 谢谢 - 非常喜欢这个解决方案和这个 - jsfiddle.net/Skooljester/jWRRA/1 虽然我无法让它与我的小提琴一起使用。如果你能修改我的小提琴,认证就是你的了!
  • 我想。您希望内容高度不应该超过高度,如果它超过那么您想要显示更多按钮。查找演示 (jsfiddle.net/jWRRA/74)
  • @locateganesh 没错但不是窗口的长度,只是容器的设定长度

标签: javascript jquery css html


【解决方案1】:

添加隐藏类并在需要时添加或删除:

https://jsfiddle.net/otjjffmc/2/

    var containerHeight = $('#mainContainer').height();    
        var contentHeight = $('#content').height();

        if(contentHeight > containerHeight) {

        $('#infopanelcollapse').removeClass('hidden'); //remove class if content is bigger than container : i.e show the button

        $("[id^=infopanelcollapse]").click(function() {
                    $(this).toggleClass("btn-more");
                    $(this).prev().toggleClass("expand");
                });
        }
        else{
            $('#infopanelcollapse').addClass('hidden'); //add hidden class if content is smaller than div, i.e hide button
        }

【讨论】:

  • 不完全是,如果内容不超过容器长度,我希望按钮不显示
  • 更新的答案,我想我的回答不同:/一定是另一个问题,或者我梦到这一切,希望不是后者:L
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2020-06-19
  • 1970-01-01
相关资源
最近更新 更多