如何在 Nuxt 中使用猫头鹰旋转木马?

2024-02-02

我想让脚本在每个页面上工作,而不需要加载这些页面; 我的静态文件夹中有 owl caroussel 脚本,我已经将其放入 nuxt.config.js 中,我的放置方式如下:

head: {
    title: 'title',
    htmlAttrs: {
        lang: 'en'
    },
    meta: [
        { charset: 'utf-8' },
        { name: 'viewport', content: 'width=device-width, initial-scale=1' },
        { hid: 'description', name: 'description', content: '' },
        { name: 'format-detection', content: 'telephone=no' }
    ],
    link: [
        { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ],
    script: [{
            src: process.env.BASE_URL_ROOT + "/jquery-3.3.1.min.js",
            type: "text/javascript"
        },
        {
            src: process.env.BASE_URL_ROOT + "/owl.carousel.min.js",
            type: "text/javascript"
        },
        {
            src: process.env.BASE_URL_ROOT + "/main-script.js",
            type: "text/javascript"
        }
    ]
},

我的 main-script.js 上有脚本:

$(document).ready(function() {

$('.owl-menu').owlCarousel({
    loop: true,
    responsiveClass: true,
    center: true,
    items: 6,
    nav: true,
    dots: false,
    autoWidth: true,
    responsive: {
        600: {
            items: 6,
            nav: true,
            autoWidth: true,
            center: true,
            loop: true
        },
    }
})

$('.owl-video').owlCarousel({
    loop: true,
    center: true,
    items: 3,
    margin: 10,
    nav: true,
    dots: true,
    responsive: {
        600: {
            items: 3,
            margin: 12,
        },
    },
    navContainer: "#nav-conte",
    navText: [
        '<i class="far fa-arrow-alt-circle-left" aria-hidden="true" style="color: rgba(0,0,0,0.67843);"></i>',
        '<i class="far fa-arrow-alt-circle-right" aria-hidden="true" style="color: rgba(0,0,0,0.67843);"></i>'
    ]
})
})

如果页面已加载,则轮播在页面上运行良好,但如果它来自 nuxt 导航,则轮播脚本将不再工作。


我使用的解决方案是 MutationObserver,它查看 DOM 上的更改;在我的main-script.js:

MutationObserver = window.MutationObserver || window.WebKitMutationObserver;

var observer = new MutationObserver(function(mutations, observer) {
    // my owl caroussel script
});

observer.observe(document, {
    subtree: true,
    attributes: true
});

在这里,您使用了一些依赖于选择 DOM 特定部分的 jQuery 代码。同时,现在的前端框架确实以不同的方式处理 DOM,并且更多地依赖于状态或refs https://v2.vuejs.org/v2/guide/components-edge-cases.html#Accessing-Child-Component-Instances-amp-Child-Elements比实际的querySelector.

因此,我什至不建议尝试连接它。您可能应该尝试使用 Vue 包来实现相同类型的功能。
它可能会更轻(捆绑包大小),更容易与您的 Nuxt 应用程序集成,并且您不会依赖错误和黑客行为。

检查此轮播列表:https://github.com/vuejs/awesome-vue#carousel https://github.com/vuejs/awesome-vue#carousel

我确实用vue-awesome-swiper https://github.com/surmon-china/vue-awesome-swiper,更多的是较重的一面,但确实很完整。


另外,我不知道你是否真的需要在 Vue 之上的 Nuxt 应用程序中添加 jQuery,但如果你想要一种干净简单的方法将其安装到你的 Nuxt 应用程序中,请按照我的其他答案进行操作:https://stackoverflow.com/a/68414170/8816585 https://stackoverflow.com/a/68414170/8816585


编辑,甚至owl carousel 贬低自己 https://github.com/OwlCarousel2/OwlCarousel2如你看到的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Nuxt 中使用猫头鹰旋转木马? 的相关文章

随机推荐

  • ASP.NET WebAPI 将 urlencoded 正文中的空字符串作为 null 传递

    我有一个简单的 ApiController public HttpResponseMessage Put int orderid FromBody Order order Do something useful with order Not
  • EF4 Code First、TDD、CRUD 和事务

    过去 我在创建数据访问 存储库代码时为简单的 CRUD 操作编写了单元测试 如下所示 using var connection new WhateverConnection connectionString connection Open
  • PHP cURL 内容类型未设置

    我想连接一个简单的网络服务 为了发布一些XML 这将在网络服务端正确进行 我需要准备一个正确的请求 我在用cURL对于这样的 try ch curl init if FALSE ch throw new Exception failed t
  • 我该怎么做才能在 WordPress 中获得实际的准备好的语句

    我的公司希望在他们的网站上使用 WordPress 我主要关心的是准备好的语句的使用 根据this https wordpress stackexchange com a 139431 我自己难以置信地阅读了源代码 WordPress 清理
  • 无法将源类型转换为目标类型

    我已经让这个子类实现了我的接口 并且在满足合同方面没有错误 但是 当我尝试在子类的构造函数中设置当前会话时 当它尝试将变量类型与 GetCurrentSession 返回的类型进行比较时 我收到此编译时错误 无法将源类型 IAPISessi
  • SQL Server 2000 - 跳出循环

    我不擅长 SQL Server 2000 我有一个以逗号分隔的 id 列表 我需要查看该 ID 是否存在于表中 如果是这样 我想跳出循环 并将该 ID 保存在可以在存储过程中使用的变量中 这就是我现在正在尝试的 DECLARE coreID
  • 如何使用 std::atomic 实现可重用的线程屏障

    我有 N 个线程执行各种任务 这些线程必须定期与线程屏障同步 如下图所示 有 3 个线程和 8 个任务 表示时间屏障 所有线程必须等到8个任务完成才能再次启动 Thread 1 task1 task6 wait taskB Thread 2
  • 如何一个接一个地运行参数化作业(没有参数)

    我在 Jenkins 有一份工作 有 2 个参数 我想运行另一个没有参数的计划 并从该计划中根据需要多次启动现有计划 新计划需要安排每 15 分钟运行一次 将由 Jenkins 的调度程序选项完成 该计划的代码将 连接到数据库 获取所需的记
  • 如何进行字段枚举迁移 yii2

    我做了字段ENUM 当我使用时结果是错误的yii migrate up在 CMD 窗口上 public function up tableOptions null if this gt db gt driverName mysql tabl
  • 在 c 中使用 malloc 实现堆栈 [初学者]

    出于学习目的 我正在用 c 语言实现一个堆栈及其函数 我添加了一些小的附加功能来第一次使用 malloc 并尝试正确理解它 我编写了一个最初创建堆栈结构的函数 该函数的返回值是一个具有已分配内存的新结构 在返回值应该是结构的函数中处理 ma
  • 如何在 emacs-ess 中的 R 会话之间切换?

    我在 Emacs ESS 中打开了两个会话 一个在我的桌面上 另一个在使用 trapmp 的服务器上 我如何告诉 ESS 使用哪个会话 嗯 我用 M x ess switch process 一直在 Emacs 内的 本地 R 会话之间切换
  • 无法读取 Zsh 历史记录的时间戳

    Problem 了解以下时间戳 1241036430 在 history 1241036336 0 vim zshrc 1241036379 0 vim bin HideTopBar 1241036421 0 ls 1241036430 0
  • Scala fat jar 中的 ExecutionInterceptorChain 中缺少 AWS SDK 执行拦截器

    我对 scala java sbt 相当陌生 这是我第一次调试通过 sbt 在 scala 中运行的代码与从编译的 jar 运行的相同代码之间的差异 我有一些 Scala 代码 它利用 AWS Java SDK 发出一些 S3 请求 当我使
  • 使用 p4merge 作为 git diff 工具

    I use windows 7 我想用p4merge作为 Git 差异 合并工具 我跟随本文 https danlimerick wordpress com 2011 06 19 git for window tip use p4merge
  • 正则表达式仅捕获匹配中捕获组的最后一个实例

    我有以下两种不同语言的正则表达式 它们产生相同的奇怪结果 javaScript 和 Flash 我想知道的不是如何解决它 而是为什么会发生这种行为 正则表达式 2 这里的目标是匹配括号内的字符串 并确保我不会停在转义括号处 如果我有文本输入
  • bash 脚本中的双感叹号

    我知道当打印双感叹号时 它会执行前面的命令 但是回声 给出了一些我不明白的奇怪结果 例如 当在 bash 脚本中键入以下命令时 它也会打印 echo 作为输出的一部分 echo echo This prints the below outp
  • PRISM + MEF -- 导入和导入Many

    FooService cs public interface IFooService int Foo Export Foo1 typeof IFooService public class Foo1 IFooService public i
  • 向多个用户显示由另一个用户插入的数据更新

    我需要在用户输入数据库时 立即向用户显示更新的数据 即在线视图 我正在使用 sql server 并构建一个 c net winform 应用程序 该应用程序将由 3 个用户 U1 U2 U3 在 LAN 上使用 用户将使用应用程序将数据输
  • 如何使用 WebDriver 在 PhantomJS 中处理/接受 JS 警报?

    作为 Selenium 的 PhantomJSDriver 新手 它如何处理 JS 警报 我找到了 JSPhantomonAlert http phantomjs org api webpage handler on alert html文
  • 如何在 Nuxt 中使用猫头鹰旋转木马?

    我想让脚本在每个页面上工作 而不需要加载这些页面 我的静态文件夹中有 owl caroussel 脚本 我已经将其放入 nuxt config js 中 我的放置方式如下 head title title htmlAttrs lang en