当用户输入/删除时,在文本字段中使提示消失/重新出现

And*_*dre 3 html javascript jquery

有谁知道如何在我的搜索栏中制作这样的效果:https: //www.dropbox.com/help

<input type="text" name="input">

我的意思是onFocus和onBlur效果,文字消失并动态显示.

谢谢大家!

xan*_*ded 7

他们在color属性上使用CSS Animations:

摘自他们的main.css:

.sick-input.focused label{ color:#ccc;transition:color .2s linear 0;
                           -webkit-transition:color .2s linear 0;
                           -moz-transition:color .2s linear 0 }
Run Code Online (Sandbox Code Playgroud)

您可以使用:focus前面提到的定义在输入字段上使用伪选择器来模拟效果.


如果由于某种原因我不够清楚:)

http://jsfiddle.net/d9CMR/


更强大的解决方案

http://jsfiddle.net/d9CMR/3/


更新(适当的颜色变化):

http://jsfiddle.net/d9CMR/6/


资源:

HTML

<input type="text" name="input" data-default="fubar">?
Run Code Online (Sandbox Code Playgroud)

CSS

input { color:#333; }    
input:focus { color:#ccc;transition:color .2s linear 0;
              -webkit-transition:color .2s linear 0;
              -moz-transition:color .2s linear 0 }
input.typing { color:#333; }?
Run Code Online (Sandbox Code Playgroud)

脚本

$(function(){
    var input = $('input[name="input"]'),
        defaulttext = input.attr('data-default');

    input.val(input.attr('data-default'));

    input.on('focus', function(){
        if(input.val() != defaulttext)
            input.addClass('typing');
        else
            input.removeClass('typing');

    }).on('keydown', function(){        
        if(defaulttext == input.val()) input.val('');

        input.addClass('typing');
    }).on('blur', function(){
        if(input.val() == '') input.val(defaulttext);

        that.removeClass('typing');
    }); 
});
Run Code Online (Sandbox Code Playgroud)

  • @Andre - Stack Overflow及其社区不是您的个人开发团队.当你甚至没有表现出任何合理的努力来解决这个问题时,请向Xander等用户表示一点敬意. (2认同)