使用HTML CSS和JavaScript设计一个字母悬停效果

使用HTML CSS和JavaScript设计一个字母悬停效果

在本文中,我们将学习如何使用简单的HTML,CSS和JavaScript实现弹跳字母悬停效果。HTML用于创建页面结构,CSS用于设置样式,JavaScript用于动画效果。

创建弹跳字母悬停效果的方法

  • HTML代码: 要实现动态的弹跳文本效果,首先用<span>标签包围<h1>标题中的每个字母。通过这种字母级别的控制,结合CSS和JavaScript,可以实现引人注目的弹跳动画,非常适合在标题、横幅和其他强调文本中引起关注。
  • CSS代码: .bounce类选择器将“bounce”关键帧动画应用于HTML元素,特别是应用在围绕标题字母周围的<span>元素上。具有此类的元素展示了动画行为。
  • JavaScript代码: 在此代码中,目标是“bouncing-letters”容器内的<span>元素。当鼠标悬停在这些<span>元素上时,触发bounce()函数,其中传递了悬停的元素。bounce()函数确保平滑的动画效果。它检查<span>是否没有“bounce”类,以避免重复播放动画。如果没有,则为CSS动画添加“bounce”类。使用setTimeout()函数,在1秒后移除该类,恢复元素到原始状态。

示例: 此示例显示了上述方法的实现。

HTML:

<!DOCTYPE html> 
<html lang="en"> 
  
<head> 
    <title> 
        Bouncing Letter Hover Effect 
    </title> 
    <style> 
        body { 
            background-color: rgba(175, 224, 175, 255); 
        } 
  
        h1 { 
            font-family: sans-serif; 
            font-size: 110px; 
            text-align: center; 
            color: #318D45; 
            margin-top: 250px; 
        } 
  
        .bounce { 
            animation-name: bounce; 
        } 
  
        .bouncing-letters span { 
            animation-timing-function: linear; 
            animation-duration: 1s; 
            animation-iteration-count: 1; 
            display: inline-block; 
        } 
  
        .bouncing-letters span:hover { 
            color: whitesmoke; 
        } 
  
        @keyframes bounce { 
  
            20%, 
            50%, 
            80%, 
            to { 
                transform: scale(1, 1); 
            } 
  
            40% { 
                transform: scale(1.75, 0.65); 
            } 
  
            45% { 
                transform: scale(1.75, 0.65); 
            } 
  
            70% { 
                transform: scale(1.25, 0.75); 
            } 
  
            90% { 
                transform: scale(1.15, 0.85); 
            } 
        } 
    </style> 
</head> 
  
<body> 
    <h1 class="bouncing-letters" 
        style="letter-spacing:0.3px;"> 
        <span>G</span> 
        <span>e</span> 
        <span>e</span> 
        <span>k</span> 
        <span>s</span> 
        <span>F</span> 
        <span>o</span> 
        <span>r</span> 
        <span>G</span> 
        <span>e</span> 
        <span>e</span> 
        <span>k</span> 
        <span>s</span> 
    </h1> 
  
    <script> 
        document.querySelectorAll(".bouncing-letters>span") 
        .forEach((element) => { 
            element.addEventListener("mouseover",  
                                     (e) => bounce(e.target)); 
        }); 
  
        function bounce(letter) { 
            if (!letter.classList.contains("bounce")) { 
                letter.classList.add("bounce"); 
                setTimeout( 
                    function () { 
                        letter.classList.remove("bounce"); 
                    }, 
                    1000 
                ); 
            } 
        } 
    </script> 
</body> 
  
</html>

输出:

使用HTML CSS和JavaScript设计一个字母悬停效果

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程