CSS/Javascript,如何在输入框中设置光标的样式?

CSS/Javascript,如何在输入框中设置光标的样式?,javascript,css,Javascript,Css,我一直在挖掘源代码,试图找出如何像他们主页上的输入框那样设计输入框的样式。我主要关注的是快速闪烁的光标和看起来很生动的文本。他们根本没有设计文本输入的样式。相反,它们使用文本输入来触发呈现动画DOM元素的javascript。这一级别的定制不能仅用CSS来完成 如果键入位,然后检查DOM,您将看到这些元素作为文本输入的同级节点: <div> <span>t</span> <span>e</span> <sp

我一直在挖掘源代码,试图找出如何像他们主页上的输入框那样设计输入框的样式。我主要关注的是快速闪烁的光标和看起来很生动的文本。

他们根本没有设计文本输入的样式。相反,它们使用文本输入来触发呈现动画DOM元素的javascript。这一级别的定制不能仅用CSS来完成

如果键入位,然后检查DOM,您将看到这些元素作为文本输入的同级节点:

<div>
    <span>t</span>
    <span>e</span>
    <span>s</span>
    <span>t</span>
    <span>i</span>
    <span>n</span>
    <span>g</span>
    <span>&nbsp;</span>
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <b class="caret" style="height: 25px;">​</b>
</div>

T
E
s
T
我
N
G
1.
2.
3.
​
当您键入或删除字符时,javascript会将每个字符作为一个新的
元素添加或删除,然后将
元素放在末尾,该元素会显示动画闪烁的光标


并不是说每个字符都是唯一的元素,就像插入符号一样,它们可以。过渡允许动画的大小和不透明度,这正是他们正在做的。

他们根本不是一个文本输入的样式,是一件事。相反,它们使用文本输入来触发呈现动画DOM元素的javascript。这一级别的定制不能仅用CSS来完成

如果键入位,然后检查DOM,您将看到这些元素作为文本输入的同级节点:

<div>
    <span>t</span>
    <span>e</span>
    <span>s</span>
    <span>t</span>
    <span>i</span>
    <span>n</span>
    <span>g</span>
    <span>&nbsp;</span>
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <b class="caret" style="height: 25px;">​</b>
</div>

T
E
s
T
我
N
G
1.
2.
3.
​
当您键入或删除字符时,javascript会将每个字符作为一个新的
元素添加或删除,然后将
元素放在末尾,该元素会显示动画闪烁的光标


并不是说每个字符都是唯一的元素,就像插入符号一样,它们可以。过渡允许动画的大小和不透明度,这正是他们正在做的。

插入符号使用的是动画。除了一些继承的样式之外,还有两个主要的类(处于悬停状态):

.searchmainbar.maininput:focus~div.caret{
不透明度:.8;
盒影:0 0 8px#fff;
-webkit动画:0.4s 40毫秒插入符号无限;
动画:0.4s40ms插入符号无限;
}
.searchmainbar.maininput:focus~div.caret{
不透明度:.8;
盒影:0 0 8px#fff;
-webkit动画:0.4s 40毫秒插入符号无限;
动画:0.4s40ms插入符号无限;
}
/*角色动画*/
.fancyInput>div span{
-webkit转换:200ms立方贝塞尔(0.08,0.6,0.56,1.4);
过渡:200ms立方贝塞尔(0.08,0.6,0.56,1.4);
显示:内联块;
位置:相对位置;
}
@关键帧插入符号{50%{不透明度:0.1;变换:scaleY(0.8)}
H和#8203​

在chrome中找到它的一种快速方法是右键单击inspector中的元素,并强制该元素进入
:focus
状态

插入符号正在使用动画。除了一些继承的样式之外,还有两个主要的类(处于悬停状态):

.searchmainbar.maininput:focus~div.caret{
不透明度:.8;
盒影:0 0 8px#fff;
-webkit动画:0.4s 40毫秒插入符号无限;
动画:0.4s40ms插入符号无限;
}
.searchmainbar.maininput:focus~div.caret{
不透明度:.8;
盒影:0 0 8px#fff;
-webkit动画:0.4s 40毫秒插入符号无限;
动画:0.4s40ms插入符号无限;
}
/*角色动画*/
.fancyInput>div span{
-webkit转换:200ms立方贝塞尔(0.08,0.6,0.56,1.4);
过渡:200ms立方贝塞尔(0.08,0.6,0.56,1.4);
显示:内联块;
位置:相对位置;
}
@关键帧插入符号{50%{不透明度:0.1;变换:scaleY(0.8)}
H和#8203​


在chrome中找到它的一种快速方法是右键单击inspector中的元素,并强制该元素进入
:focus
状态

我的答案是否有不准确或误导性的地方?我没有投反对票,但可能是在代码之后出现了轻微的拼写错误:虽然我可能会使用这个插件,但看看它是如何工作的很酷。如果我想扩展效果,也许我可以尝试自己制作:)@user1521753在这种情况下,你应该使用插件。它看起来很甜。但是你希望如何在你写的jQuery插件的简历上写下你的想法呢。了解事情是如何运作的很重要。@user1521753还要注意性能-我注意到当我在文本中键入并移动光标时,页面的其余部分“闪烁”,所以我在chrome的时间线中查看了它-屏幕上有很多布局/重新绘制。这可能不是全部的错误,但它确实存在。我的答案是否有不准确或误导性的地方?我没有投反对票,但可能是代码之后的轻微拼写错误虽然我可能会使用这个插件,但看看它是如何工作的很酷。如果我想扩展效果,也许我可以尝试自己制作:)@user1521753在这种情况下,你应该使用插件。它看起来很甜。但是你希望如何在你写的jQuery插件的简历上写下你的想法呢。了解事情是如何运作的很重要。@user1521753还要注意性能-我注意到当我在文本中键入并移动光标时,页面的其余部分“闪烁”,所以我在chrome的时间线中查看了它-屏幕上有很多布局/重新绘制。这可能不全是花哨的输入错误,但它确实存在。呸,有趣的是:)@AlexWayne你可以随时从他们的源代码进行反向工程:)更有趣的是-尝试过度输入-文本框似乎没有尽头-字符只是从屏幕上滚动。呸,有趣的是:)@AlexWayne你可以随时从他们的源代码进行反向工程:)更有趣的是-尝试改写-文本框似乎没有尽头-字符只是从屏幕上滚动。感谢Chrome提示,我不知道!谢谢你的铬提示,我不知道!