JavaScript slider 动态改变 + HTML/CSS ,不改变图片

标签 javascript html css

我有一个站点,主菜单中有一个图像,我想每 5 秒更改一次。 该图像在 CSS 类中引用,我需要每 5 秒用另一个图像更改此图像。为此,我编写了一个 JavaScript 代码并在 css 中添加了额外的 url。 但是 Javascript 代码有问题,我无法捕捉到。 首先,我在控制台中收到一条消息,指出我的变量 MaxSlider 未定义。 其次,我认为在我的函数“changeMainSlider”中我没有正确指向。

<main class="container">
   <div class="main-image">
      <div class="text">
         <div class="title">Lorem ipsum dolor</div>
         <div class="title2">Lorem ipsum dolor sit amet</div>
      </div>
   </div>
</main>

.main-image {
    height:  340px;
    background: url(img/slide.jpg), url(img/gallery-1.jpg), url(img/gallery-2.jpg) center;
    background-size: cover;
    position: relative;
    margin-bottom: 60px;
}




var mainSlider = new MaxSlider('.main-slider');
var mainSliderInterval;
changeMainSlider();
var main_slider_el = document.getElementsByClassName('.main-slider');
main_slider_el.addEventListener('mouseenter', function () {
    clearInterval(mainSliderInterval);
});
main_slider_el.addEventListener('mouseleave', function () {
    changeMainSlider();
});

function changeMainSlider() {
    mainSliderInterval = setInterval(function () {
        mainSlider.nextItem();
    }, 5000);
}

最佳答案

我做了一些配置。第一次我有一些错误和一些遗漏的代码。 在我将其更改为:

<div class="max-slider" id="main-slider">
                <div class="list-items">>
                    <div class="item">
                            <div class="main-image">
                                    <div class="text">
                                        <div class="title">Lorem ipsum dolor</div>
                                        <div class="title2">Lorem ipsum dolor sit amet</div>
                                    </div>
                                </div>
                    </div>
                    <div class="item">
                            <div class="main-image2">
                                    <div class="text">
                                        <div class="title">Lorem ipsum dolor</div>
                                        <div class="title2">Lorem ipsum dolor sit amet</div>
                                    </div>
                                </div>
                    </div>
                    <div class="item">
                            <div class="main-image3">
                                    <div class="text">
                                        <div class="title">Lorem ipsum dolor</div>
                                        <div class="title2">Lorem ipsum dolor sit amet</div>
                                    </div>
                                </div>
                    </div>
                </div>
<script> 
var mainSlider = new MaxSlider('main-slider');

var mainSliderInterval;
changeMainSlider();

function changeMainSlider() {
    mainSliderInterval = setInterval(function () {
        mainSlider.nextItem();
    }, 5000);
}

     var main_slider_el = document.getElementById('main-slider');
      main_slider_el.addEventListener('mouseenter', function () {
          clearInterval(mainSliderInterval);
        });
        main_slider_el.addEventListener('mouseleave', function () {
            changeMainSlider();
        });
function MaxSlider(id) {
    this.id = id;   // main-slider
    var first_item = document.querySelector('#' + this.id + ' .item:first-child');
    first_item.classList.add('current');

    this.nextItem = function () {
        var currentEl = document.querySelector('#' + this.id + ' .current');
        currentEl.classList.remove('current');
        if (currentEl.nextElementSibling) {
            currentEl.nextElementSibling.classList.add('current');
        }
        else {
            first_item.classList.add('current');
        }
    };

}
</script>

对于每个“主图像”类,我在 CSS 和 slider 中添加了不同的背景图像:

.max-slider .item {
    display: none;
}
.max-slider .item.current {
    display: block;
}

或者只是添加内联样式,background-image:(url)<div class="main-image

关于JavaScript slider 动态改变 + HTML/CSS ,不改变图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58458092/

相关文章:

javascript - 使用 javascript 将窗口位置更改为特定元素?

Javascript - 加载图像

javascript - 提交 HTML 表单后提供文件 "save as"对话框

html - Safari - 子元素高度超过父元素

javascript - 使用 javascript/jQuery 重新加载样式表而不闪烁未设置样式的内容

php - 将 CSS 规则应用于 woocommerce 产品后端页面

javascript - 如何将缩略图图像的数量增加到 FlexSlider

javascript - Android 在 Phonegap 版本中不响应软后退键

javascript - 打印外部页面而不打开它

html - EaselJS 在鼠标悬停时更改颜色