Vue.js 如何在悬停时展开动画按钮

Vue.js 如何在悬停时展开动画按钮

动画网站给用户带来了愉快的体验。当网站访问者悬停在链接或按钮等动画元素上时,它们可能会改变颜色、展开或收缩、旋转,或者是以上动作的任意组合。这不仅作为视觉确认,表示他们的交互是有效的,而且也是一种视觉享受。

Vue.js是一个流行的JavaScript框架,用于构建交互和视觉吸引人的UI元素,可以极大地增强您的网站或应用程序的用户体验。它提供了一种声明式和基于组件的编程方法,可以有效地创建用户界面,无论是简单还是复杂。它建立在常见的HTML、CSS和JavaScript之上。

Vue.js提供了两个属性来检查动画行为,“@mouseover”和“@mouseout”,可以触发用户在Vue.js中定义的自定义功能。

方法1:使用用户自定义的方法切换类

在这里,我们将利用用户定义的方法来切换HTML元素的类,以实现悬停动画效果。

语法

<button :class="<data-key>" @mouseover="<function()> @mouseout="<function()>

这里,<data-key>是vue.js应用程序中的一个数据成员,<function()>是vue.js应用程序中用户定义的方法。

步骤

步骤1: 使用HTML和CSS定义按钮

步骤2: 从CDN导入Vue.js包

步骤3: 在Script标签内的Vue对象中定义数据和用户定义的方法,我们的情况下是一个包含所有为按钮激活的类名的“classes”数组,以及定义用户在按钮上悬停时和离开时要执行的“hoverover”和“hoverout”函数。

步骤4: 定义toggle class的CSS元素,即animated class,以实现悬停时的UI变化。

示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Tutorialspoint</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <h1>Tutorials Point hover button Animation</h1>
        <button :class="classes" @mouseover="hoverOver" @mouseout="hoverOut">
            Button
        </button>
    </div>
    <style>
        body {
            background: #20262E;
            padding: 100px;
            font-family: Helvetica;
        }

        #app {
            background-color: burlywood;
            border-radius: 25px;
            padding: 100px;
            transition: all 0.2s;
        }


        button {
            background-color: #9fb89f;
            border: none;
            color: white;
            padding: 15px 30px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 18px;
            transition-duration: 500ms;
        }
        .animated{
            background-color: blueviolet;
            transform: scale(1.2);
            border-radius: 25px;
        }
    </style>
    <script>
        new Vue({
            el: "#app",
            data: {
                classes: []
            },
            methods: {
                hoverOver: function () {
                    console.log('over');
                    this.classes = ['animated']
                },
                hoverOut: function () {
                    console.log('out');
                    this.classes = []
                }
            }
        })
    </script>
</body>

</html>

方法2:根据布尔变量切换类

我们将使用布尔变量将CSS类绑定到HTML元素,当鼠标悬停时返回true,否则返回false。

语法

<button :class="{<classname>: <bool-var>}" @mouseover="<bool-var>= true" @mouseout="<bool-var>= false" > ... </button>

在这里,:class包含类名和一个布尔变量,该变量告诉是否将该类包含在标签中。布尔变量由“@mouseover”和“@mouseout”触发和控制,以更改布尔变量的值。

步骤

步骤1: 使用HTML和CSS定义按钮

步骤2: 从CDN导入Vue.js软件包。

步骤3: 在Script标签内的Vue对象中,定义布尔数据变量,本例中为hover。

步骤4: 将布尔变量与需要在:hover时切换的所需类绑定到:class属性中。

步骤5: 将布尔变量与需要在:hover时切换的所需类绑定到:class属性中。

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>tutorialpoint button hover</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <h1>Tutorials Point hover button Animation</h1>
        <button :class="{animated: hover}" @mouseover="hover = true" @mouseout="hover = false">
            Button
        </button>
    </div>
    <style>
        body {
            background: #20262E;
            padding: 100px;
            font-family: Helvetica;
        }

        #app {
            background-color: burlywood;
            border-radius: 25px;
            padding: 100px;
            transition: all 0.2s;
        }


        button {
            background-color: #9fb89f;
            border: none;
            color: white;
            padding: 15px 30px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 18px;
            transition-duration: 500ms;
        }
        .animated{
            background-color: blueviolet;
            transform: scale(1.2);
            border-radius: 25px;
        }
    </style>
    <script>
        new Vue({
            el: "#app",
            data: {
                hover: false
            }
        })
    </script>
</body>
</html>

结论

动画可以增强网站或应用程序的用户体验。Vue.js是构建用户界面的强大工具,有无数种方式来定制和动画化UI元素。除了在鼠标悬停时扩展和改变颜色,Vue.js还有多种其他方法可以改变按钮和其他UI组件的行为和外观。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

HTML 精选笔记