【问题标题】:read more feature in CSS, ES6, react阅读 CSS、ES6、react 中的更多功能
【发布时间】:2017-12-02 04:07:46
【问题描述】:

我正在尝试在 css3、ES6 和 React 中完成阅读更多功能。

我有一个很长的描述(来自服务器,所以它是动态的),我想在其中添加“阅读更多”功能。如果描述超过 3 行,那么按钮/链接应该可以作为“阅读更多”,当我单击该按钮时,应该显示其余描述。

这是我的代码:

反应:

<div className="content">

Description of the product 

<button onClick=(() => {})>Read more</button>

</div>

CSS:

.content{
overflow: hidden;
line-height: 1.2em;
height: 3.6em;
}

我无法弄清楚的是,当我单击“阅读更多”按钮时,如何更改 div id 以使其高度自动。 我有 javascript 代码,但我想在 ES6 中实现它

JS:

document.querySelector('button').addEventListener('click', function() 
{
  document.querySelector('#content').style.height= 'auto';
this.style.display= 'none';
});

非常感谢任何帮助!

【问题讨论】:

    标签: css reactjs ecmascript-6


    【解决方案1】:

    我在这里为你创建了一个小提琴:https://jsfiddle.net/jwm6k66c/3063/。使用 React 时要避免直接操作 dom。首选方法是使用组件state 来切换content div 上的类。

    class App extends React.Component {
        constructor(){
        this.description = getDescription();
        this.state = {
            expanded: false
        }
      }
        render(){
        const { expanded } = this.state;
        const toggledClass = expanded ? 'expanded' : 'collapsed';
        return(
          <div>
            <div className={`content ${toggledClass}`}>
                {this.description}
            </div>
            <button onClick={() => this.setState({ expanded: !expanded })}>
                {expanded ? 'View Less' : 'View More'}
            </button>
          </div>
        )
      }
    }
    

    CSS

    .content {
      overflow: hidden;
      line-height: 1.2em;
      height: 3.6em;
    }
    .content.collapsed{
      overflow: hidden;
    }
    .content.expanded{
      overflow: visible;
      height: auto;
    }
    

    【讨论】:

    • 非常感谢您的帮助!我真的很感激。是否可以仅在 ES6 中执行此操作?
    • 是的,这就是 es6。什么不是 es6?
    • 我想知道我是否可以只使用 ES6 而不是使用反应状态或其他任何东西来做到这一点。
    • 我想这取决于你来重构它,但那时你可能甚至不应该使用 React。
    • 似乎如果文本最多 3 行,那么“查看更多”按钮也会出现。如果文本为 3 行且可见超过 3 行,如何使其不可见?
    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 2017-07-11
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2021-08-13
    相关资源
    最近更新 更多