javascript - 如何平滑过渡输入的占位符文本?

标签 javascript jquery html css

我多次调用 $("input").attr("placeholder,"Another String")

我希望字符串在发生这种情况时平滑过渡(具有 fadeIn/Out 类效果)。我怎样才能做到这一点?我不会特别挑剔我使用什么工具来完成这项工作(CSS、纯 JS 或 JQuery),只要完成即可。

最佳答案

您可以尝试针对占位符文本进行 CSS 转换。添加一个将不透明度更改为 0 的类,然后在给它时间进行过渡后更改占位符文本并删除该类。

::-webkit-input-placeholder { transition : opacity 0.5s; }
::-moz-placeholder { transition : opacity 0.5s; }
:-ms-input-placeholder { transition : opacity 0.5s; }
.fade::-webkit-input-placeholder { opacity : 0; }
.fade::-moz-placeholder { opacity : 0; }
.fade:-ms-input-placeholder { opacity : 0; }

JS:

    $("input").addClass("fade");
    setTimeout(function() {
        $("input").attr("placeholder", "New text here")
                  .removeClass("fade");
    }, 500);

演示:http://jsfiddle.net/F3z3V/

以上似乎在 Chrome 中完美运行。在 IE 中它有点工作:它淡入和淡出占位符文本但也淡化输入边框 - 很奇怪。 FF 中没有出现淡入淡出效果 - 不知道为什么。

尽管它只是部分有效,但我已经发布了它,因为它至少为您提供了一个起点。

关于javascript - 如何平滑过渡输入的占位符文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20941079/

相关文章:

javascript - 在使用 onClick() 之前,如何保持 onClickOutside() 方法处于禁用状态?

javascript - 如何将图像用作用 Canvas 制作的文本的颜色

javascript - 如何通过 jQuery 插件拖放链接/页面?

javascript - 尝试通过滚动更改沿 DOM 的元素位置时,jQuery .detach() 不起作用

javascript - 即使从父组件传递函数后也无法更改子组件的状态

javascript - 单击事件未在输入类型=提交时触发

javascript - 使用helper 在handlebars.js 中创建链接

javascript - jQuery 悬停处理函数在动态添加类后无法在悬停上工作

html - 如何在 Bootstrap 4 中创建偏移量

javascript - 如何使用 Chai 断言对象数组中的类型?