停止css动画 Flink 图像上单击

zphenhs4  于 2022-12-15  发布在  Flink
关注(0)|答案(3)|浏览(168)

我用css制作了一张 Flink 的图片。这张图片看起来像一个光标(某种程度上)。它位于一个文本区域上。当用户点击图片或文本区域时,我希望 Flink 的图片消失。到目前为止,它一直在 Flink 。我如何才能让它永远停止呢?
超文本:

<form id="commentsForm">
<div id="textareaWrap">
<img src="img/caret.png" id="blinking_caret" title="blinking caret" />
<textarea id="formStory" placeholder=""></textarea>
</div>
</form>

CSS:

@keyframes blink {
    0% {
        opacity: 1;
    }
    49% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}
/* Chrome, Safari, Opera */
@-webkit-keyframes blink
{
    0% {
        opacity: 1;
    }
    49% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}
    #textareaWrap {
        position: relative;
    }
        #blinking_caret {
            position: absolute;
            top: 0; left: 0;
            animation: blink 1s;
            animation-iteration-count: infinite;
            -webkit-animation: blink 1s;
            -webkit-animation-iteration-count: infinite;
            z-index: 2;
        }
    #formStory {
        width: 100%;
        border: none;
        background-color: #f1f0f0;
        height: 400px;
        cursor: text;
        outline: none;
    }

查询:

$('#formStory').click(function(){
    $('#blinking_cursor').stop( true, true ).fadeOut();
    $("#formStory").attr("placeholder","Start here ...");
});
jslywgbw

jslywgbw1#

您正在jQuery中使用$('#blinking_cursor')。您的图像的ID为#blinking_caret-请更新jQuery以选择正确的ID。
如果你只是想让图像消失,只要做$('#blinking_caret').hide();

ndasle7k

ndasle7k2#

为什么要使用JavaScript呢?这可以只使用CSS来完成。只要文本区域有焦点或有文本,代码(和fiddle)就会隐藏脱字符(使用HTML5 required属性)。
这里有一把小提琴:http://jsfiddle.net/rgthree/7ePSU/
超文本:

<form id="commentsForm">
    <div id="textareaWrap">
        <textarea id="formStory" required placeholder=""></textarea>
        <span class="caret"></span>
    </div>
</form>

CSS:

#textareaWrap {
    position:relative; width:200px;
}
#textareaWrap textarea {
    position:relative; width:100%; height:100px; z-index:1; font-size:12px;
}
#textareaWrap .caret {
    -webkit-animation: blink 1s steps(1) infinite;
    position:absolute; left:3px; top:2px; z-index:2;
    width:1px; height:1em; background:#000;
}
#textareaWrap textarea:focus + .caret,
#textareaWrap textarea:valid + .caret {display:none;}
@-webkit-keyframes blink {
    0% {opacity: 1;}
    50% {opacity: 0;}
    100% {opacity: 1;}
}
  • 注意:您仍然需要JavaScript来实现占位符。(您可以像.caret一样对它建模,但这不是必需的)。不过,您的问题不是关于占位符,所以我只是向您展示如何实现光标。*
0pizxfdo

0pizxfdo3#

保留元素的ID,但通过类应用CSS。你仍然可以获得快速/绝对的选择,但可以在你的点击函数中做到这一点:

$('#blinking_cursor').removeClass('whateverClassName');

尤里+1完全错过了!

相关问题