如何成功显示和隐藏一段文本
How to successfully show and hide a paragraph of text?
我正试图使用jquery构建一个简单的显示和隐藏文本,但不确定从哪里开始。
我已经设法显示了更多的文本,但当你隐藏文本时,就不能再显示了。
当您已经按下show more时,它还会在页面中留下show more链接。
如果有人能引导我朝着正确的方向前进,我会非常感激的
这是我的宝贝http://jsfiddle.net/nLzDk/
/* SHOW MORE AND LESS TEXT PROFILE PAGE
===================================================================*/
$("#show-more-btn").click(function(e){
e.preventDefault();
$(".show-more").slideToggle('slow');
})
$("#show-less-btn").click(function(e){
e.preventDefault();
$(".show-less").slideUp('slow');
})
首先,您提供了JsFiddle链接,它帮助我找到了实际问题。
以下方法可能会对您有所帮助,您可能需要进行以下更改-
HTML-
<div class="show-more clearfix">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pretium, turpis vitae tincidunt fermentum,
<a href="#show-more-btn" id="show-more-btn">More</a>
</p>
</div>
<div class="show-less clearfix">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pretium, turpis vitae tincidunt fermentum,
<a href="#show-less-btn" id="show-less-btn">Less</a>
</p>
</div>
CSS-
.show-less{
display:none;
}
Javascript-
$("#show-more-btn").click(function(e){
e.preventDefault();
$(".show-less").slideToggle('slow');
})
$("#show-less-btn").click(function(e){
e.preventDefault();
$(".show-less").slideUp('slow');
})
你只需要正确地交换你的类。我在JsFiddle上试过这个,如果能帮到你的话。
但这种行为的正确方法如下-
HTML-
<div class="clearfix">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pretium, turpis vitae tincidunt fermentum,
<button id="show-more">More</button>
</p>
<p class="more">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pretium, turpis vitae tincidunt fermentum,
<button id="show-less">Less</button>
</p>
</div>
CSS-
.more{
display:none;
}
Javascript-
$("#show-more").click(function(e){
e.preventDefault();
$(".more").slideToggle('slow');
$(this).hide();
$("#show-less").show();
})
$("#show-less").click(function(e){
e.preventDefault();
$(".more").slideUp('slow');
$(this).hide();
$("#show-more").show();
})
通常,一次只显示一个按钮,可以是多按钮,也可以是少按钮,这就是为什么当用户点击更多按钮时,我们需要删除更多按钮,而显示更少按钮,当用户点击更少按钮时也是如此。
我在JsFiddel 上实现了相同的功能
试试这个:
/* SHOW MORE AND LESS TEXT PROFILE PAGE
===================================================================*/
$("#show-more-btn").click(function(e){
e.preventDefault();
$(".show-more").slideToggle('slow');
$("#show-more-btn").toggle();
})
$("#show-less-btn").click(function(e){
e.preventDefault();
$(".show-more").slideUp('slow');
$("#show-more-btn").toggle();
})
*编辑以隐藏该节目并隐藏"显示更多"按钮。
我看不到您的完整代码(jsfiddle在我当前的网络中被屏蔽),但我可以告诉您的一件事是,您正在将方法与两个按钮混合使用。JQuery有三种基本的"幻灯片"方法:.slideUp()
、.slideDown()
和.slideToggle()
。
.slideUp()
使用滑动动作使选定元素隐藏.slideDown()
使用滑动动作来显示所选元素.slideToggle()
使所选元素基于其当前状态在显示或隐藏之间交替(即,如果它当前被隐藏,它将显示,如果它目前被显示,它将隐藏),使用滑动运动。基本上,它是.slideUp()
和.slideDown()
在一个方法中的组合
在您的情况下,如果您要使用两个按钮,我建议使用.slideUp()
表示"显示较少",使用.slideDown()
表示"显示较多"。但是,您似乎必须在按钮本身添加一个额外的.show()
和.hide()
,才能显示/隐藏视图的相应按钮。类似这样的东西:
$("#show-more-btn").click(function(e){
e.preventDefault();
$(".show-more").slideDown('slow');
$("#show-more-btn").hide();
$("#show-less-btn").show();
})
$("#show-less-btn").click(function(e){
e.preventDefault();
$(".show-more").slideUp('slow');
$("#show-less-btn").hide();
$("#show-more-btn").show();
})
如果使用一个按钮,可以很容易地使用.slideToggle()
方法,但每次都必须更新按钮的显示,以指示"显示更多/更少"状态。类似这样的东西:
$("#show-btn").click(function(e){
e.preventDefault();
$(".show-more").slideToggle('slow');
$("#show-btn").toggleClass("show-more show-less");
})
或者类似的东西。
- 在一段时间内切换文本
- 如何停止字幕文本一段时间,然后继续
- 如何使用jquery/js/css逐步突出显示一段文本
- 如何成功显示和隐藏一段文本
- 如何在javascript中用字符串变量替换一段文本
- 如何在一段时间后更改文本的颜色
- 仅显示变量内的一段文本
- 如何从HTML页面的源代码中获取一段文本
- Jquery 在文本中淡出一段时间
- Javascript获取HTML块中的最后一段文本
- 如何用JavaScript/jQuery替换和缩短一段文本中的超链接
- 如何在网站上制作动画,每秒钟就会有一段文本发生变化
- 给定一段文本,如何获取从开头到最后一个空格的所有内容
- 从一段文本中找出javascript中的关键字
- 如何切换页面的一个部分,使其从一段文本转到另一段文本
- 根据位置自动更新一段文本
- 如何将一段文本分割成句子和/或段落
- Javascript或jquery,如何显示数组中的文本,并在按下按钮时将文本更改为数组中的下一段文本
- ng-repeat不显示最后一段文本
- 如何从以前单击的链接或页面名称中解析一段文本