我在其他地方找不到解决我问题的方法,这里是:

我想要的功能是,当用户将鼠标悬停在一组3-4个单词上时,它会放大。
到目前为止,我仅设法进行了硬编码,这意味着我用span元素拆分了所有文本,并在css中添加了功能。但是我知道这很糟糕:


变得凌乱/看起来很丑
无法在大文字的
很难添加更多文本


因此,我想要一种自动执行此“跨分隔文本”的方法,也许使用正则表达式。但是我不知道如何。
这是我到目前为止提出的



body {
    padding: 10px;
    margin: 10px;
}

h1 {
    font-family: Arial;
    font-size: 20px;
    color: #000000;
}

h1 span {
    display: inline-block;
    -webkit-transition: all 0.1s ease-out;
}

h1 span:hover {
    -webkit-transform: scale(1.5);
    color: yellow;
    text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
    cursor: pointer;
}

<h1>
<p>Yesterday i went out at a festival where i ate a lot of corn</p>
<!--I just split the text with span elements.  -->
<p><span>Yesterday i went</span> <span>out at a festival</span> <span>where i ate</span> <span>a lot of corn</span></p>
</h1>

最佳答案

我真的不知道缩放,但是如果您想将文本分成3个单词的组,用来换行,则可以使用jquery并执行以下操作:

var p = $('p'); //selector
var originalText = p.text().split(' '); //original text between <p></p>
var spannedText = [];

for (var i = 0; i < originalText.length; i += 3) { //per group of 3 words
 spannedText[i] = ('<span>' + originalText.slice(i,i+3).join(' ') + '</span>'); //wrap the 3 words with <span></span>
}

$(p).html(spannedText.join(' ')); //display the new wrapped text


https://jsfiddle.net/hjmoc1mq/3/

10-04 17:48