Javascript 滑动/向下滑动不太有效
我有一个切换元素的功能:Javascript 滑动/向下滑动不太有效,javascript,jquery,Javascript,Jquery,我有一个切换元素的功能: function toggle(elemName) { text = document.getElementById(elemName); var isHidden = text.style.display == 'none'; text.style.display = isHidden ? 'block' : 'none'; if (text.style.display == 'none') { $(text).sli
function toggle(elemName) {
text = document.getElementById(elemName);
var isHidden = text.style.display == 'none';
text.style.display = isHidden ? 'block' : 'none';
if (text.style.display == 'none') {
$(text).slideUp();
}
else {
$(text).slideDown();
}
return false;
}
我真正需要的是,如果它是隐藏的,向下滑动,如果它是可见的,向上滑动,让它消失
它是隐藏和显示,但滑动不起作用
有什么不对劲吗
谢谢在调用
slideUp()
或slideDown()
之前,您正在隐藏元素
拆下这条线,它应该可以正常工作:
text.style.display = isHidden ? 'block' : 'none';
希望有帮助:)试试这个:
function customToggle(elemId) {
var elem = $('#'+elemId);
if ( elem.is(':visible') ) { elem.slideUp(); }
else { elem.slideDown(); }
}
$(document).ready(function() {
customToggle('myId');
});
请注意,在您的示例中,
$(text).slideUp()代码>不起作用,因为文本只返回id名称,如下所示:$('myId').slideUp()代码>在jQuery中应该是这样的:$('#myId').slideUp()代码>滑动切换是否适合您的需要
function toggle(elemName) {
text = document.getElementById(elemName);
$(text).slideToggle();
}
参见工作演示
您的逻辑颠倒了,请使用!='“无”
不是==“无”
另外,请删除这样的行:
var isHidden = text.style.display == 'none';
text.style.display = isHidden ? 'block' : 'none';
因此,工作代码如下所示:
function toggle(elemName) {
text = document.getElementById(elemName);
if (text.style.display != 'none') {
$(text).slideUp();
}
else {
$(text).slideDown();
}
return false;
}
$("#name").on('click', function(){
toggle("txt");
});
然后,如何确定它是隐藏的以向上滑动还是向下滑动?slideUp和slideDown会处理此问题:)。调用slideDown添加display:none代码>到调用它的元素:)查看我的答案用户2043533如果没有显示,您将如何确切地看到幻灯片?您也可以使用Jquery检查可见性,如下所示:var visible=$(“元素”)。is(“:visible”);