使用 AOS.js 和 class 而不是数据属性
Use AOS.js with class instead of data attribute
我想在我的网站上使用 AOS.js,但我无法将必要的数据属性添加到页面的 DIV。
这是来自文档 (https://michalsnik.github.io/aos/) 的标记:
<div data-aos="fade-up" data-aos-duration="3000">
...
</div>
我的标记如下所示:
<div class="aos-fade-up aos-duration-3000">
...
</div>
有什么方法可以只用 类 使用 AOS.js 吗?
我在研究时发现了一个类似的问题:Having trouble adding aos.js using classes
但是没有答案。
这是另一个问题的代码,但它不起作用:
$('.aos-fade-up').each(function(i) {
$(this).attr('data-aos', 'fade-up');
});
有什么想法吗?
您可以试试这个片段:
<script>
function ismatch(str){
var ret = null;
var tab = ['data-aos_', 'data-aos-delay_', 'data-aos-duration_', 'data-aos-easing_'];
Object.values(tab).forEach( function (value) {
if (String(str).match(value)){
ret = str.split('_');
return false;
}
});
return ret;
}
jQuery(document).ready(function ($) {
$('.some-class').each(function () {
var $this = $(this);
var tab = $this.attr('class').split(' ');
var keep;
Object.values(tab).forEach(function (item) {
var ello = ismatch(item)
if (ello !== null)
$this.attr(ello[0], ello[1]);
});
});
AOS.init();
});
</script>
用法:
<div class="some-class data-aos_fade-down data-aos-delay_100 data-aos-duration_800"></div>```
我想在我的网站上使用 AOS.js,但我无法将必要的数据属性添加到页面的 DIV。
这是来自文档 (https://michalsnik.github.io/aos/) 的标记:
<div data-aos="fade-up" data-aos-duration="3000">
...
</div>
我的标记如下所示:
<div class="aos-fade-up aos-duration-3000">
...
</div>
有什么方法可以只用 类 使用 AOS.js 吗?
我在研究时发现了一个类似的问题:Having trouble adding aos.js using classes 但是没有答案。
这是另一个问题的代码,但它不起作用:
$('.aos-fade-up').each(function(i) {
$(this).attr('data-aos', 'fade-up');
});
有什么想法吗?
您可以试试这个片段:
<script>
function ismatch(str){
var ret = null;
var tab = ['data-aos_', 'data-aos-delay_', 'data-aos-duration_', 'data-aos-easing_'];
Object.values(tab).forEach( function (value) {
if (String(str).match(value)){
ret = str.split('_');
return false;
}
});
return ret;
}
jQuery(document).ready(function ($) {
$('.some-class').each(function () {
var $this = $(this);
var tab = $this.attr('class').split(' ');
var keep;
Object.values(tab).forEach(function (item) {
var ello = ismatch(item)
if (ello !== null)
$this.attr(ello[0], ello[1]);
});
});
AOS.init();
});
</script>
用法:
<div class="some-class data-aos_fade-down data-aos-delay_100 data-aos-duration_800"></div>```