Owl Carousel无法与ASP.NET Blazor一起使用 [英] Owl Carousel not working with ASP.NET Blazor

查看:72
本文介绍了Owl Carousel无法与ASP.NET Blazor一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在努力使这种猫头鹰轮播工作.我没有收到任何错误,但如果未加载,则轮播.我尝试了在StackOverflow上为Bootstrap传送带找到的解决方案,但是它对我不起作用.我也尝试过使用纯CSS轮播,但是这将是静态的,我希望轮播能够动态工作.

I have been trying to make this owl carousel work. I am not getting any error but the carousel if not loading. I tried the solution I found on StackOverflow for Bootstrap carousel but it did not work for me. I also tried to use pure CSS carousel but it will be static kind of thing and I want the carousel to work dynamically.

Index.razor

Index.razor

@page "/"

@using TBS.Data;

@inject IJSRuntime  JsRuntime;
@*@inject IComponentContext context;*@
@inject NavigationManager UriHelper;
@inject MediaService MediaService;
@inject ContentService ContentService;


    <div class="container hero-section">
        <div class="owl-carousel owl-theme slide">
            <div class="hero-image item">
                <img src="images/here-image.png" alt="hero-img" class="img-fluid">
                <div class="hero-details">
                    <h2>MATT RISINGER</h2>
                    <h6>Home Builder. Austin, TX.</h6>
                    <a href="#"><button>EXPLORE CHANNEL</button></a>
                </div>
            </div>
            <div class="hero-image item">
                <img src="images/here-image.png" alt="hero-img" class="img-fluid">
                <div class="hero-details">
                    <h2>MATT RISINGER</h2>
                    <h6>Home Builder. Austin, TX.</h6>
                    <a href="#"><button>EXPLORE CHANNEL</button></a>
                </div>
            </div>
        </div>

    </div>

_Host.cshtml

_Host.cshtml

@page "/"
@namespace TBS.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>The Build Show</title>
    <base href="~/" />


    <link rel="stylesheet" href="css/owl.carousel.min.css">
    <link rel="stylesheet" href="css/owl.theme.default.min.css">
    <script src="js/jquery-3.4.1.min.js"></script>
    <link rel="stylesheet" href="style.css">


    <environment include="Development">
        <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
    </environment>
    <environment exclude="Development">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
              asp-fallback-href="css/bootstrap/bootstrap.min.css"
              asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
              crossorigin="anonymous"
              integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" />
    </environment>
    <link href="css/site.css" rel="stylesheet" />
    <link href="css/showvideo.css" rel="stylesheet" />
    <link href="css/default.css" rel="stylesheet">
    <link href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" rel="stylesheet"
          integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
    <link href="https://cdn.syncfusion.com/ej2/17.2.35/material.css" rel="stylesheet" />

    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-36173959-17"></script>
    <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
    <script src="https://cdn.syncfusion.com/ej2/17.2.35/dist/ej2.min.js"></script>
    <script src="https://cdn.syncfusion.com/ej2/17.2.35/dist/ejs.interop.min.js"></script>
    <script type="text/javascript" src="js/indexedDb.Blazor.js"></script>
    <script type="text/javascript" src="js/functions.js"></script>
</head>
<body>
    <app>
        @(await Html.RenderComponentAsync<App>(RenderMode.Server))
    </app>

    <script src="_framework/blazor.server.js"></script>
    <script src="_content/BlazorStrap/blazorStrap.js"></script>
    <script src="_content/BlazorStrap/popper.min.js"></script>
    @*<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script>*@
    <script type='text/javascript'>
        (function ($) { window.fnames = new Array(); window.ftypes = new Array(); fnames[0] = 'EMAIL'; ftypes[0] = 'email'; fnames[1] = 'FNAME'; ftypes[1] = 'text'; fnames[2] = 'LNAME'; ftypes[2] = 'text'; fnames[3] = 'ADDRESS'; ftypes[3] = 'address'; fnames[4] = 'PHONE'; ftypes[4] = 'phone'; }(jQuery)); var $mcj = jQuery.noConflict(true);
    </script>

    <script src="js/custom.js">

    </script>
    <script src="js/owl.carousel.min.js"></script>
    <script>
        $('.slide').owlCarousel({
            loop: true,
            margin: 10,
            nav: true,
            dots: false,
            autoplay: true,
            responsive: {
                0: {
                    items: 1
                },
                600: {
                    items: 1
                },
                1000: {
                    items: 1
                }
            }
        });
        $('.slide1').owlCarousel({
            loop: true,
            margin: 10,
            nav: true,
            dots: false,
            responsive: {
                0: {
                    items: 1
                },
                600: {
                    items: 2
                },
                1000: {
                    items: 3
                }
            }
        });
        $('.slide2').owlCarousel({
            loop: true,
            margin: 10,
            nav: true,
            dots: false,
            responsive: {
                0: {
                    items: 1
                },
                600: {
                    items: 2
                },
                1000: {
                    items: 3
                }
            }
        });
        $('.slide3').owlCarousel({
            loop: true,
            margin: 10,
            nav: true,
            dots: false,
            responsive: {
                0: {
                    items: 1
                },
                600: {
                    items: 2
                },
                1000: {
                    items: 3
                }
            }
        });
    </script>
</body>
</html>

推荐答案

我有一个类似的问题,我发现使用JavaScript库需要使用JInterop.因此,在引用了所有必需的库之后,我在根文件夹wwwroot中创建了一个名为main.js的js文件,并将该引用添加到我的index.html文件中

I had a similar issue, i figured it out that to use JavaScript library you need to use JInterop. So after referencing all required library, i created a js file in my root folder wwwroot called main.js, and i added the reference to my index.html file like this

<script src="main.js"></script>

在这个main.js文件中,我创建了一个函数,其中包含运行滑块所需的所有javascript代码.因此main.js文件中的代码如下所示.

Inside this main.js file i created a function that contains all the javascript code i need to run my slider. So the code inside main.js file looks like this.

(function($) {
'use strict';
window.sliderFunctions = {
    startSlider: function () {
        /*============ All the code or function you need for your slider to run goes here ============*/
        --code--
    }
}}

然后我打开我的app.razor文件,然后像这样注入JSRuntime

Then i opened my app.razor file, then injected JSRuntime like so

@inject IJSRuntime JSRuntime

然后仍然在我的app.razor文件中,添加了以下代码

then still in my app.razor file, i added the following code

@code {
protected async override Task OnAfterRenderAsync(bool firstRender)
{
  await JSRuntime.InvokeAsync<string>("sliderFunctions.startSlider", null);
  //return base.OnAfterRenderAsync(firstRender);
}}

简单的事情是,这允许在Blazor完成渲染后运行所有javascript代码.

What simple happened is, this allows to run all javascript code after Blazor is done rendering.

这篇关于Owl Carousel无法与ASP.NET Blazor一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆