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”);