使用html、css、javascript和jQuery,我想呈现给用户一个带有指示的段落:“读故事。然后,圈出所有的名词。”
问题:当用户点击单词时,如何在其周围画一个圆圈? 如果每个单词都必须在自己的标签中,那也可以。
问题:当用户点击单词时,如何在其周围画一个圆圈? 如果每个单词都必须在自己的标签中,那也可以。
以下是HTML代码:
<p id="circleNouns">Now is the time for all good men to come to the aid of their country.</p>
首先,让我们使用jQuery将文本中的每个单词用<span>
标签包装起来:
var $cn = $('#circleNouns'),
cnText = $cn.text();
cnText = cnText.replace(/\s/g, '</span> <span>');
$cn.html('<span>' + cnText + '</span>');
如果我们为一个类设置样式,用于绘制圆形边框:
.selected {
border:1px solid red;
border-radius:30px;
-webkit-border-radius:30px;
-moz-border-radius:30px;
}
$cn.find('span').click(function(e) {
$(this).toggleClass('selected');
});
$cn.find('.selected')
中的每个 .html()
是否与您的名词列表匹配以查看答案是否正确。
这里有一个有效的示例→
.selected
类中添加margin: 0px -1px;
将避免边框圆圈绘制后文本的移动。 - Dane Hillard您可以使用不同大小的透明PNG图像,小、中、大来圈出不同大小的单词。
因此,当用户点击span/div时,使用JavaScript在单词上叠加该PNG,并动态调整其大小以获得最佳大小。
但我仍然建议为什么不使用简单的基于HTML的边框来标记它?它可以是带有圆角边缘的边框,通过一些CSS使其更加精美。