替代jQuery slideUp和slideDown for Mobile

时间:2013-10-16 11:18:08

标签: javascript jquery css mobile

当有人点击'.ui-input-note'输入框时,我希望“#btnContainer”出现在它下面。在桌面上工作,这非常有效:

HTML

        <div id="textInput"/>
        <div id="btnContainer"/>

CSS
       #btnContainer{
            height:44px;
            display: none;
        }
JS 

       $('#textInput').append(
           $('<input>').addClass('ui-input-note').attr('placeholder', 'Notes')
       );

       $('#btnContainer').append(
           $('<button id="submitBtn" data-role="button" data-inline="true" data-mini="false" data-theme="b">Save Note</button>')
       );   

        $('.ui-input-note').focus(function() {
              $( "#btnContainer" ).slideDown({
                     duration: 500 ,
                     easing: 'jswing'
              });
        });

但是在移动设备上,slideDown很慢而且很跳跃。我正在使用HTC One,所以我认为它不会在任何其他手机上运行得更顺畅。我试过这个plugin,这解释了'jswing',但没有快乐。

所以我试着这样做,但它不起作用。有人会有任何意见或建议吗?要么我的新功能不起作用,要么如何让slideDown在移动设备上运行更顺畅。

        $('.ui-input-note').focus(function() {
                $( "#btnContainer" ).animate({
                     display: 'block',
                     left:'250px',
                     opacity:'0.5',
                     height:'150px',
                     width:'150px'
                 });
         }); 

干杯

1 个答案:

答案 0 :(得分:1)

您是否尝试 CSS3

JS:

$(document).on('focus', '.ui-input-note', function() {
    $('#btnContainer')addClass('large');
});

的CSS:

#btnContainer{height:44px; display:none; transition:1s ease; -moz-transition:1s ease; -webkit-transition:1s ease; -o-transition:1s ease; -ms-transition:1s ease;}
#btnContainer.large{display:block;height:150px;}

希望有所帮助。