首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对类而不是数据属性使用AOS.js

对类而不是数据属性使用AOS.js
EN

Stack Overflow用户
提问于 2020-02-01 20:07:57
回答 1查看 1.8K关注 0票数 0

我想在我的站点上使用AOS.js,但是我没有选择将必要的数据属性添加到页面的DIVs中。

下面是文档中的标记(https://michalsnik.github.io/aos/):

代码语言:javascript
复制
<div data-aos="fade-up" data-aos-duration="3000">
    ...
</div>

我的标记如下所示:

代码语言:javascript
复制
<div class="aos-fade-up aos-duration-3000">
    ...
</div>

有没有办法只对类使用AOS.js?

我在研究时发现了一个类似的问题:Having trouble adding aos.js using classes,但没有答案。

下面是另一个问题的代码,但它不起作用:

代码语言:javascript
复制
$('.aos-fade-up').each(function(i) {
    $(this).attr('data-aos', 'fade-up');
});

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-03 01:11:54

你可以试试这段代码:

代码语言:javascript
复制
<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>

用法:

代码语言:javascript
复制
<div class="some-class data-aos_fade-down data-aos-delay_100 data-aos-duration_800"></div>```
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60016717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档