我需要创建一个显示更多/更少文本功能,但只使用JavaScript和HTML ..我不能使用任何其他库,如jQuery,它不能用CSS完成。
答案 0 :(得分:0)
如果没有正确的解释,提供完整的解决方案并不是一件好事。所以我只做了一个半成品解决方案。
HTML:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ac ligula id neque pharetra luctus. Nulla in luctus tortor. Nullam non lectus tellus. Pellentesque maximus rutrum dolor, aliquet dapibus lectus dignissim eu. Fusce non blandit risus. Suspendisse fermentum ipsum justo, vitae finibus risus convallis non. Proin euismod euismod orci, suscipit sodales sem fringilla sed. Maecenas iaculis ac elit cursus efficitur. Vivamus at bibendum purus, non molestie libero. Donec fermentum ante non diam bibendum, nec consectetur orci gravida. APPLES FOR SALE! <br>
<a href="#" id="js-more">Show more!</a>
<span id="js-hidden">
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque faucibus felis eget auctor ultricies. Cras vel posuere lorem. Etiam tincidunt maximus magna. Phasellus eu nisi quam. Curabitur dictum felis ut vulputate rhoncus. Aliquam et odio justo. Morbi sit amet lectus sit amet nulla lobortis tempor et et nulla. Proin eget posuere nunc, ac tristique turpis. Curabitur elementum maximus dolor, ac vehicula dui dictum at. Integer libero nisi, pulvinar a turpis pretium, rhoncus suscipit erat. In auctor odio ut odio aliquam malesuada at at quam. Fusce lobortis, diam euismod tempor luctus, diam mi venenatis lectus, sed tempus neque risus et neque. Fusce id vestibulum nunc, at gravida leo. Morbi fringilla dolor ac molestie aliquet.
</span>
<p>
JS: var hiddenText = document.getElementById('js-hidden'); var toggleButton = document.getElementById('js-more'); hiddenText.style.display ='none'; hiddenText.className ='hidden';
function hasClass(element, cls) {
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
toggleButton.onclick = function toggleText(){
console.log("click happens");
if(hasClass(hiddenText, 'hidden') == 1)
{
console.log("true");
hiddenText.style.display = 'block';
hiddenText.className = '';
}
else
{
console.log("false");
hiddenText.style.display = 'none';
hiddenText.className = 'hidden';
}
return false;
}