簡體   English   中英

.slideDown()似乎不起作用

[英].slideDown() Doesn't Seem To Work

使用.append()將textarea的值附加到div后,JQuery的.slideUp()不起作用。

HTML:

<html>
    <body>
        <div id="cont">
            <textarea id="txt"></textarea>
            <button onclick="click()">Click</button>
        </div>
    </body>
</html>


JavaScript:

function click(){
    var txt = $('#txt').val();
    var html = document.createElement('div');
    $(html).hide().html(txt);
    $('#cont').append(html);
    $(html).slideUp(500);
}

我不知道是什么問題,因為當我使用.show()而不是.slideUp()時,它可以正常工作。

well ... slideDown讓元素顯示出來,而slideUp讓元素隱藏起來。 嘗試

    $(html).slideDown(500)

// @ Philip Hardyhis的話:解決了我的問題。 但是,有一種方法可以讓它從底部向上滑動而不必使用.animate()

我不這么認為,但我認為這很容易:只要將div元素放在html內(使用$(html)就很難處理),將其稱為“ myDiv”並放置其中的所有內容myDiv中的html

然后將div移至窗口外並進行動畫處理(請注意,將其移至底部的底部需要暫時禁用窗口的滾動)

$(document).css('overflow','hidden');
$("#myDiv").css({'top':$(document).height(), 'opacity':'0'});
/*outside of the window and transparent*/
$("#myDiv").animate({
    'opacity':'1',
    'top':'0'
},2000, function(){$(document).css('overflow','auto');});

我認為它應該像這樣

隱藏新的div,然后再將其添加到#cont然后對其調用.slideDown以顯示:

// When the button is pressed
$("button").on("click", function(){
    // Create a new DIV with our text as its content
    $("<div>", { text: $("#txt").val() } )
         // Make it invisible, append it, and then slide it into view
        .hide().appendTo("#cont").slideDown(500); 
});​

小提琴: http : //jsfiddle.net/7Zp5w/1/

此外,L。Monty已經指出,您可以通過使用jQuery的鏈接來精簡函數。

$('button').on('click', function() {
    $('<div>')
       .html($('#txt').val())
       .appendTo('#cont')
       .slideDown(0).slideUp('slow');
});​

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM