You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core页面点击表单输入框时暂停Owl Carousel轮播

问题描述

在ASP.NET Core页面中,我使用了Owl Carousel轮播组件,轮播内包含注册表单。需求是:当用户点击表单的任意输入框时,轮播停止自动切换,方便用户完成注册操作。页面中有两个独立的轮播(.home-slider和.carousel-testimony)及对应表单,点击任一表单的输入框后,所有轮播都需锁定不再切换。

解决方案

要实现该需求,我们可以通过监听表单输入元素的focus事件,调用Owl Carousel提供的API来暂停自动轮播。具体步骤如下:

  • 初始化轮播时保存实例引用,方便后续调用控制方法
  • 为所有表单内的输入、选择框绑定focus事件
  • 在事件回调中触发轮播的停止自动播放命令
修改后的代码

JavaScript代码

$.Scrollax();

// 保存两个轮播的实例,用于后续控制
let homeSliderInstance, testimonySliderInstance;

var carousel = function() {
    homeSliderInstance = $('.home-slider').owlCarousel({
        loop:true,
        autoplay: true,
        margin:0,
        animateOut: 'fadeOut',
        animateIn: 'fadeIn',
        nav:true,
        dots: true,
        autoplayHoverPause: false,
        items: 1,
        navText : ["<span class='ion-ios-arrow-back'></span>","<span class='ion-ios-arrow-forward'></span>"],
        responsive:{
            0:{ items:1 },
            600:{ items:1 },
            1000:{ items:1 }
        }
    });
    testimonySliderInstance = $('.carousel-testimony').owlCarousel({
        center: true,
        loop: true,
        items:1,
        margin: 30,
        stagePadding: 0,
        nav: false,
        navText: ['<span class="ion-ios-arrow-back">', '<span class="ion-ios-arrow-forward">'],
        responsive:{
            0:{ items: 1 },
            600:{ items: 1 },
            1000:{ items: 1 }
        }
    });
};
carousel();

// 监听表单内所有输入、选择框的focus事件,停止轮播自动切换
$('.booking-form input, .booking-form select').on('focus', function() {
    homeSliderInstance.trigger('stop.owl.autoplay');
    testimonySliderInstance.trigger('stop.owl.autoplay');
});

// 可选:若需要用户离开输入框后恢复轮播,取消以下注释
// $('.booking-form input, .booking-form select').on('blur', function() {
//     homeSliderInstance.trigger('play.owl.autoplay', [true]);
//     testimonySliderInstance.trigger('play.owl.autoplay', [true]);
// });

HTML代码(无需修改)

<section class="home-slider owl-carousel ">
    <div class="slider-item  ">
        <div class="overlay"></div>
        <div class="container-fluid p-0">
            <div class="row d-md-flex no-gutters slider-text js-fullheight align-items-center justify-content-end" data-scrollax-parent="true">
                <div class="one-third order-md-last img js-fullheight" style="background-image:url(images/bg_3.jpg);">
                    <div class="overlay"></div>
                </div>
                <div class="one-forth d-flex js-fullheight align-items-center ftco-animate" data-scrollax=" properties: { translateY: '70%' }">
                    <div class="text mt-md-5">
                        <h1 class="mb-4">Ev yapımı yiyecekler <br> Delicious Foods</h1>
                       <!---- Order-->
                        <div class="booking">
                            <div class="container">
                                <div class="row align-items-center">
                                    <div class="col-lg-9">
                                        <div class="booking-form">
                                            <form>
                                                <div class="control-group">
                                                    <div class="input-group">
                                                        <input type="text" class="form-control" placeholder="Name" required="required" />
                                                        <div class="input-group-append">
                                                            <div class="input-group-text"><i class="far fa-user"></i></div>
                                                        </div>
                                                    </div>
                                                </div>
                                                <div class="control-group">
                                                    <div class="input-group">
                                                        <input type="email" class="form-control" placeholder="Email" required="required" />
                                                        <div class="input-group-append">
                                                            <div class="input-group-text"><i class="far fa-envelope"></i></div>
                                                        </div>
                                                    </div>
                                                </div>
                                                <div class="control-group">
                                                    <div class="input-group">
                                                        <input type="text" class="form-control" placeholder="Mobile" required="required" />
                                                        <div class="input-group-append">
                                                            <div class="input-group-text"><i class="fa fa-mobile-alt"></i></div>
                                                        </div>
                                                    </div>
                                                </div>
                                                <div class="control-group">
                                                    <div class="input-group date" id="date" data-target-input="nearest">
                                                        <input type="text" class="form-control datetimepicker-input" placeholder="Date" data-target="#date" data-toggle="datetimepicker" />
                                                        <div class="input-group-append" data-target="#date" data-toggle="datetimepicker">
                                                            <div class="input-group-text"><i class="far fa-calendar-alt"></i></div>
                                                        </div>
                                                    </div>
                                                </div>
                                                <div class="control-group">
                                                    <div class="input-group time" id="time" data-target-input="nearest">
                                                        <input type="text" class="form-control datetimepicker-input" placeholder="Time" data-target="#time" data-toggle="datetimepicker" />
                                                        <div class="input-group-append" data-target="#time" data-toggle="datetimepicker">
                                                            <div class="input-group-text"><i class="far fa-clock"></i></div>
                                                        </div>
                                                    </div>
                                                </div>
                                                <div class="control-group">
                                                    <div class="input-group">
                                                        <select class="custom-select form-control">
                                                            <option selected>Guest</option>
                                                            <option value="1">1 Guest</option>
                                                            <option value="2">2 Guest</option>
                                                          
                                                            <option value="10">10 Guest</option>
                                                        </select>
                                                        <div class="input-group-append">
                                                            <div class="input-group-text"><i class="fa fa-chevron-down"></i></div>
                                                        </div>
                                                    </div>
                                                </div>
                                                <div>
                                                    <button class="btn custom-btn" type="submit">Order Now</button>
                                                </div>
                                            </form>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>

内容的提问来源于stack exchange,提问作者masoud mazloum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 22:02:03