首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入滑块向上/向下滑出问题

问输入滑块向上/向下滑出问题
EN

Stack Overflow用户
提问于 2012-07-24 17:03:47
回答 2查看 2.8K关注 0票数 1

看起来像是jQuery删除了输入字段的值,这些字段先是向上滑动,然后又向下滑动。我不太确定是不是占位符在做这件事,但是内置的向上/向下滑动似乎是输入字段的bug。

下面是一个示例:http://jsfiddle.net/k3Bc2/

代码语言:javascript
复制
$(document).ready(function () {
    $('#slideUp').click(function () {
        $('input[type="text"]').slideUp(1000);
    });

    $('#slideDown').click(function () {
        $('input[type="text"]').slideDown(1000);
    });
});

如果您在输入字段中输入值并单击slideUp按钮,然后等待它向上滑动,然后单击slideDown,您将看到缺少输入字段的值。

有没有人知道如何在链接的例子中使用一个向上滑动/向下滑动的工作方法?

使用google chrome,如果这能说明原因的话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-24 17:14:20

当输入高度为0时发生错误。你应该改变你的方法。使用带有遮罩动画的css位置方法:

Here is demo link. You'll inspect there will be no bug with this method.

jQuery:

代码语言:javascript
复制
$(document).ready(function () {
    $('#slideUp').click(function () {
        $('input[type="text"]').stop().animate({'top':'200px'},400);
    });

    $('#slideDown').click(function () {
        $('input[type="text"]').stop().animate({'top':'0px'},400);
    });
});​

html:

代码语言:javascript
复制
<div id="mask">
   <input id="motion" type="text" value="" placeholder="Enter some text.." />
</div>
<input type="button" value="slideUp" id="slideUp" />
<input type="button" value="slideDown" id="slideDown" />​

css:

代码语言:javascript
复制
#mask { position:relative; 160px; height:25px; overflow:hidden; top:0; left:0; }
#motion { position:absolute; top:0; left:0; }
input { position:relative; } ​
票数 2
EN

Stack Overflow用户

发布于 2012-07-24 17:35:28

它看起来像是chrome (而不是jQuery)中的一个bug。它在ff中工作得很好。

我猜是和font-size有关的吧。Chrome不会丢失font-size,但如果您再次设置,它会正常工作。

代码语言:javascript
复制
$(document).ready(function () {
    $('#slideUp').click(function () {
        $('input[type="text"]').slideUp(1000);
    });

    $('#slideDown').click(function () {
        $('input[type="text"]').slideDown(1000,function(){ 
             $(this).css('font-size',$(this).css('font-size'));                
        });
    });
});​

Demo

编辑:

我看到上面的hack只工作一次。如果您再次向上/向下滑动,它将失败。

这里有一个更好的方法。

代码语言:javascript
复制
.text{ 
    font-size:13px; 
}​

$(document).ready(function () {
    $('#slideUp').click(function () {
        $('input[type="text"]').slideUp(1000,function(){
               $(this).removeClass('text');        
        });
    });

    $('#slideDown').click(function () {
        $('input[type="text"]').slideDown(1000,function(){    
            $(this).addClass('text');     
        });
    });
});​

Demo

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11627531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档