如何使用 JavaScript 设置四个过渡属性?
在本教程中,我们将学习如何使用 JavaScript 设置四个过渡属性。
过渡是一个 CSS 属性,用于设置元素的过渡效果。它是以下属性的简写:transitionProperty、transitionDuration、transitionTimingFunction 和 transitionDelay。
transitionProperty 用于指定应该具有过渡效果的 CSS 属性名称。transitionDuration 属性用于指定完成过渡的总时间。transitionTimingFunction 用于指定过渡的速度曲线。transitionDelay 用于指定过渡将在多长时间后开始。
要使用 JavaScript 设置四个过渡属性,有多种方法,在本教程中,我们将讨论其中两种:
使用 `style.transition` 属性
使用 `style.setProperty()` 方法
使用 style.transition 属性
在 JavaScript 中,元素的 style.transition 属性用于设置元素的四个过渡属性。由于 style.transition 属性在元素对象中可用,我们首先需要使用 `document.getElementById()` 方法访问元素对象,然后使用此属性来设置四个过渡属性。
语法
const object = document.getElementById('id') object.style.transition = transitionProperty transitionDuration transitionTimingFunction transitionDelay | inherit | initial
在上面的语法中,`document.getElementById()` 方法用于访问具有 id 属性为“id”的 HTML 元素的元素对象,然后我们设置 `style.transition` 属性。
参数
transitionProperty − 应该具有过渡效果的属性名称。
transitionDuration − 完成过渡效果的总时间。
transitionTimingFunction − 过渡效果的速度曲线。
transitionDelay − 开始过渡效果的时间延迟。
inherit − 过渡属性由其父元素继承。
initial − 过渡属性设置为默认值。
示例
在下面的示例中,我们使用了 `style.transition` 属性来使用 JavaScript 设置四个过渡属性。我们使用了一个按钮“设置过渡”,其点击事件用于执行“setTransition()”函数,该函数为多个元素设置过渡效果。
<html> <head> <style> .transition { padding: 10px; margin: 5px 0px; border: 1px solid gray; background-color: aliceblue; width: 30%; } .transition:hover { width: 90%; } </style> </head> <body> <h2>Using the style.transition Property</h2> <p>Please Hover over the DIVs to see the transition before and after clicking the "Set Transition" button.</p> <button onclick="setTransition()"> Set Transition </button> <div> <div id="element1" class="transition"> transition: width 2s linear 1s </div> <div id="element2" class="transition"> transition: all 1s ease-in 0.1s </div> <div id="element3" class="transition"> transition: all 0.1s ease-out 0.1s </div> </div> <script> const element1 = document.getElementById('element1') const element2 = document.getElementById('element2') const element3 = document.getElementById('element3') // 'Set Transition' button click event handler function function setTransition() { element1.style.transition = 'width 1s linear 1s' element2.style.transition = 'all 1s ease-in 0.1s' element3.style.transition = 'all 0.1s ease-out 0.1s' } </script> </body> </html>
使用 style.setProperty() 方法
在 JavaScript 中,`style.setProperty` 方法设置元素的属性,无论是新的还是现有的。也可以使用此方法设置过渡属性。首先,使用 `document.getElementById()` 方法访问元素,然后使用 `style.setProperty` 方法设置“transition”属性。在 `style.setProperty` 方法的属性名称参数中,应为“transition”,值和优先级将根据用户的需求而定。
语法
const object = document.getElementById('id') object.style.setProperty(property_name, value, priority)
在上面的语法中,`document.getElementById()` 方法用于访问具有 id 属性为“id”的 HTML 元素的元素对象,然后我们在该元素对象上使用 `style.setProperty` 方法。
参数
property_name − 要设置的属性的名称。
value − 属性的新值。
priority − 属性值的优先级(可选)。
示例
在下面的示例中,我们使用了 `style.setProperty` 方法来使用 JavaScript 设置四个过渡属性。我们使用了四个输入字段来获取用户对过渡的四个属性的输入:transitionProperty、transitionDuration、transitionTimingFunction 和 transitionDelay。一个按钮“设置过渡”与一个点击事件关联,该事件执行“setTransition()”函数,该函数设置元素的四个过渡属性。
<html> <head> <style> #root { padding: 20px; margin: 5px 0px; border: 1px solid black; background-color: aliceblue; width: 30%; } #root:hover { width: 90%; background-color: aqua; } label { margin-right: 5px; font-weight: bold; } .input-field { margin-bottom: 5px; } </style> </head> <body> <h2>Using <i> style.setProperty() </i> method with JavaScript</h2> <p> Please Hover over the below box to see the transition before and after clicking the "Set Transition" button.</p> <h4>Enter the four properties of transition:</h4> <div> <div class="input-field"> <label for="transitionProperty"> transitionProperty: </label> <input id="transitionProperty" type="text" name="transitionProperty" value="all"> </div> <div class="input-field"> <label for="transitionDuration"> transitionDuration: </label> <input id="transitionDuration" type="text" name="transitionDuration" value="2s"> </div> <div class="input-field"> <label for="transitionTimingFunction"> transitionTimingFunction: </label> <input id="transitionTimingFunction" type="text" name="transitionTimingFunction" value="linear"> </div> <div class="input-field"> <label for="transitionDelay"> transitionDelay: </label> <input id="transitionDelay" type="text" name="transitionDelay" value="0.2s"> </div> </div> <button onclick="setTextDecoration()"> Set Transition </button> <div id="root"> Welcome to Tutorialspoint! </div> <script> function setTextDecoration() { const root = document.getElementById('root') // All input fields' value const transitionProperty = document.getElementById('transitionProperty').value const transitionDuration = document.getElementById('transitionDuration').value const transitionTimingFunction = document.getElementById('transitionTimingFunction').value const transitionDelay = document.getElementById('transitionDelay').value root.style.setProperty('transition', transitionProperty + ' ' + transitionDuration + ' ' + transitionTimingFunction + ' ' + transitionDelay) } </script> </body> </html>
在单击“设置过渡”按钮之前,没有输入字段值,则元素悬停时的过渡不会产生过渡效果。
单击“设置过渡”按钮并输入字段值后,根据输入字段的值,在悬停元素时会发生过渡效果。
在本教程中,我们讨论了两种使用 JavaScript 设置四个过渡属性的方法。第一种方法是使用 `style.transition` 属性,另一种方法是使用 style.setProperty() 方法。