如何使用 javascript 或 CSS 更改 HTML AOS 延迟值
How to change HTML AOS delay value using javascript or CSS
第一次在这里寻求帮助,希望有一个简单的答案。我在我的网站上使用 AOS - Animate on Scroll 库,我希望能够根据屏幕宽度更改 aos 延迟值,因为我需要不同的延迟时间,具体取决于屏幕尺寸。
是否可以将下面的“1300”值称为“数字”,然后在 CSS 或 javascript 中通过媒体查询更改该值?
<div class="skill" data-aos="fade-in" data-aos-delay="1300">
<div class="icon-container">
<img src="images/pencilruler.gif" alt="">
</div>
<h1>Graphic Design</h1>
<p>
Custom designs for screen and print. From logo designs and corporate branding, to adverts and packaging.
</p>
</div>
我一直没有找到解决方案。我尝试在 javascript 中使用 getElementById() 但只能设法更改 div 的内容而不是其中的值。
目前,我的解决方法(如下)是为每个延迟长度设置重复的 divs,然后使用“显示:none;”我可以根据屏幕删除不需要的尺寸。这真的很痛苦,而且有点混乱,因为我想要很多延迟变化。
@media screen and (max-width : 419px){
.skill-desktop{
display:none;
}
}
感谢任何帮助或想法。
属性
在HTML中,像class="name"
这样的key-value对被称为attributes。 class
, style
和 src
是属性示例。
以 data-
为前缀的属性称为 data attributes。数据属性不同于在 HTML 中直接定义的普通属性,可以由程序员 定义 。这就是您的库使用数据属性来设置延迟的原因。
更改属性
要设置属性的 值,您可以使用 Element.setAttribute(name, value)。在这种情况下,我们将获取元素并设置其 data-aos-delay
数据属性:
function setDelay(number) {
document.querySelector('.skill').setAttribute('data-aos-delay', number)
}
喜欢 Hugo Elhaj-Lanhsen anwsered you can change the data attributes. I would like to add how to do that depending on the viewport size, using Window.matchMedia and MediaQuery.addListener() JavaScript。
const mqList = window.matchMedia("(max-width: 419px)")
// If media query matches on load
if (mqList.matches) {
setDelay(400) // using Hugo's function
}
// If media query matches after resize
mqList.addListener(function(mql) {
if (mql.matches) {
setDelay(400) // using Hugo's function
}
})
并确保添加 HTML viewport meta tag,这样视口就是设备的大小。
<meta name="viewport" content="width=device-width, initial-scale=1">
第一次在这里寻求帮助,希望有一个简单的答案。我在我的网站上使用 AOS - Animate on Scroll 库,我希望能够根据屏幕宽度更改 aos 延迟值,因为我需要不同的延迟时间,具体取决于屏幕尺寸。
是否可以将下面的“1300”值称为“数字”,然后在 CSS 或 javascript 中通过媒体查询更改该值?
<div class="skill" data-aos="fade-in" data-aos-delay="1300">
<div class="icon-container">
<img src="images/pencilruler.gif" alt="">
</div>
<h1>Graphic Design</h1>
<p>
Custom designs for screen and print. From logo designs and corporate branding, to adverts and packaging.
</p>
</div>
我一直没有找到解决方案。我尝试在 javascript 中使用 getElementById() 但只能设法更改 div 的内容而不是其中的值。
目前,我的解决方法(如下)是为每个延迟长度设置重复的 divs,然后使用“显示:none;”我可以根据屏幕删除不需要的尺寸。这真的很痛苦,而且有点混乱,因为我想要很多延迟变化。
@media screen and (max-width : 419px){
.skill-desktop{
display:none;
}
}
感谢任何帮助或想法。
属性
在HTML中,像class="name"
这样的key-value对被称为attributes。 class
, style
和 src
是属性示例。
以 data-
为前缀的属性称为 data attributes。数据属性不同于在 HTML 中直接定义的普通属性,可以由程序员 定义 。这就是您的库使用数据属性来设置延迟的原因。
更改属性
要设置属性的 值,您可以使用 Element.setAttribute(name, value)。在这种情况下,我们将获取元素并设置其 data-aos-delay
数据属性:
function setDelay(number) {
document.querySelector('.skill').setAttribute('data-aos-delay', number)
}
喜欢 Hugo Elhaj-Lanhsen anwsered you can change the data attributes. I would like to add how to do that depending on the viewport size, using Window.matchMedia and MediaQuery.addListener() JavaScript。
const mqList = window.matchMedia("(max-width: 419px)")
// If media query matches on load
if (mqList.matches) {
setDelay(400) // using Hugo's function
}
// If media query matches after resize
mqList.addListener(function(mql) {
if (mql.matches) {
setDelay(400) // using Hugo's function
}
})
并确保添加 HTML viewport meta tag,这样视口就是设备的大小。
<meta name="viewport" content="width=device-width, initial-scale=1">