Hey there CSS-Tricks community.
I am working on a info-heavy website and need to be able to hide some of the text and do a read more button/link when clicked revels the rest of the text. I have been able get it to work before on single instances but need a way for multiple instances on one page. Can anyone recommended a way to do this with jQuery?
Super simple stuff. Why not wrap the content you want initially hidden in a div, slap an h3 or something in before it, and go something like this:
// Hide the extra content initially, using JS so that if JS is disabled, no problemo.
$('.read-more-content').addClass('hide');
// Set up the toggle.
$('.read-more-toggle').on('click', function() {
$(this).next('.read-more-content').toggleClass('hide');
});
Edited to add: After reading the link you posted, I think I may have misunderstood what you're wanting. If you want this to be inline, the concept is similar, and only slightly more complicated. You could wrap the content you want to be expanded in a span, and use JS to dynamically insert a 'read more' link. I'll fork my CodePen with an example, one sec.
Edit: Didn't see your reply. No problem, glad I could help!
Here's another example, of this done inline, more like the expander plugin but without the added dependency (or features). This is hacked together, and could certainly be done cleaner, just as a disclaimer.
Edited again: Cleaner version with no HTML injection, but this also removes a lot of the convenience of just adding a class to a span to handle everything for you: http://codepen.io/JoshBlackwood/pen/pEwHe
Hello, thank you for the explaination, as it's exactly what I have been searching for a while. It looks quite simple http://codepen.io/JoshBlackwood/pen/pEwHe but I have no idea about JavaScript. I follow the instructions about Using Java Script http://codex.wordpress.org/Using_Javascript but I may be doing something wrong, because it doesn't show.
I uploaded a readmoreless.js file (with your code pasted in it) to ThemeName/js folder and in header.php added
<script type="text/javascript" src="/js/readmoreless.js"></script>.
Also added CSS and HTML code in page. Nothing :(
Any help would be very much appreciated...! Thank you in advance
Unless there's something else going on, the url to the readmoreless.js-file is not /js/readmoreless.js, but is likelier to be along these lines: wp-content/themes/ThemeName/js/readmoreless.js, which might very well be what the issue is.
One issue I've encountered: if you click 'Read More' on more than one paragraph, then click 'Read Less' on any one of the paragraphs, the other paragraphs will show the 'Read More' link AND the additional content with the 'Read Less' link.
I tweeked the JoshBlackwood example to behave better with multiple Read More/Read Less paragraphs on the same page.
http://codepen.io/anon/pen/CIqDf
Hey there CSS-Tricks community. I am working on a info-heavy website and need to be able to hide some of the text and do a read more button/link when clicked revels the rest of the text. I have been able get it to work before on single instances but need a way for multiple instances on one page. Can anyone recommended a way to do this with jQuery?
I know about http://plugins.learningjquery.com/expander/ but need away to pick where the break happens not dependent on the number of words or characters.
Thanks in advance!
Super simple stuff. Why not wrap the content you want initially hidden in a div, slap an h3 or something in before it, and go something like this:
CodePen: http://codepen.io/JoshBlackwood/pen/tmpwq
Edited to add: After reading the link you posted, I think I may have misunderstood what you're wanting. If you want this to be inline, the concept is similar, and only slightly more complicated. You could wrap the content you want to be expanded in a span, and use JS to dynamically insert a 'read more' link. I'll fork my CodePen with an example, one sec.
Solid. This should work great. I have know how to implement jQuery just now getting into understanding and writing it. Thanks again.
Edit: Didn't see your reply. No problem, glad I could help!
Here's another example, of this done inline, more like the expander plugin but without the added dependency (or features). This is hacked together, and could certainly be done cleaner, just as a disclaimer.
http://codepen.io/JoshBlackwood/pen/tDsEh
Edited again: Cleaner version with no HTML injection, but this also removes a lot of the convenience of just adding a class to a span to handle everything for you: http://codepen.io/JoshBlackwood/pen/pEwHe
Even better. Yeah both great, love the HTML injection format, much easier. Thanks again!
And how could I achieve that if I click on a closed div´s read more that the other opened div´s will close?
Hello, thank you for the explaination, as it's exactly what I have been searching for a while. It looks quite simple http://codepen.io/JoshBlackwood/pen/pEwHe but I have no idea about JavaScript. I follow the instructions about Using Java Script http://codex.wordpress.org/Using_Javascript but I may be doing something wrong, because it doesn't show. I uploaded a
readmoreless.jsfile (with your code pasted in it) toThemeName/jsfolder and inheader.phpadded<script type="text/javascript" src="/js/readmoreless.js"></script>. Also added CSS and HTML code in page. Nothing :( Any help would be very much appreciated...! Thank you in advanceUnless there's something else going on, the url to the
readmoreless.js-file is not/js/readmoreless.js, but is likelier to be along these lines:wp-content/themes/ThemeName/js/readmoreless.js, which might very well be what the issue is.http://codepen.io/JoshBlackwood/pen/pEwHe Thanks for this.
One issue I've encountered: if you click 'Read More' on more than one paragraph, then click 'Read Less' on any one of the paragraphs, the other paragraphs will show the 'Read More' link AND the additional content with the 'Read Less' link.
I tweeked the JoshBlackwood example to behave better with multiple Read More/Read Less paragraphs on the same page. http://codepen.io/anon/pen/CIqDf