详解用backgroundImage如何解决图片轮播切换

炎热的夏天过去了,凉爽的秋天来了。它是一个收获的季节,也是各种水果最多的时候,红艳艳的苹果扒开绿叶往外瞧;小红灯笼似的枣子挂满枝头;像紫玛瑙的葡萄一串串地挂在葡萄架下,真迷人呀!

单dom节点实现轮播

利用backgroundImage可以添加多张图片,以及位置偏移实现轮播效果

  • 创建一个div;并用backgroundImage给div附图片
  • 利用backgroundPosition调节位置
  • 利用css3 transition调节过渡
  • 即可替代简单的图片切换
  /**
        * 播放图片
        */
    function playImage(src) {
        if (animaitionFinshed) return;
        if (!_imageEl) {
            _imageEl = document.createElement('div')
            _imageEl.className = `swiper_container`;
            _imageEl.style.backgroundImage = `url(${src.url})`;
            _imageEl.setAttribute("data-img", src.url);
            elContainer.appendChild(_imageEl);
        } else {
            animaitionFinshed = true;
            let width = elContainer.clientWidth, height = elContainer.clientHeight;
            let preImage = _imageEl.getAttribute("data-img");
            _imageEl.style.backgroundImage = `url(${preImage}),url(${src.url}) `;
            _imageEl.style.backgroundPositionX = `center,${width + 20}px`;
            setTimeout(() => {
                _imageEl.style.transition = "all 0.8s ease";
                _imageEl.style.backgroundPositionX = `-${width + 20}px,center`;
            }, 0);

            setTimeout(() => {
                _imageEl.style.transition = "none";
                _imageEl.style.backgroundImage = `url(${src.url}) `;
                _imageEl.style.backgroundPositionX = `center`;
                _imageEl.setAttribute("data-img", src.url)
                animaitionFinshed = false;
            }, 800)
        }
    }

源代码

以上就是详解用backgroundImage如何解决图片轮播切换。人活着就应该像齐天大圣,疯过,爱过,恨过,闯过,拼过,努力过,但从没怕过。更多关于详解用backgroundImage如何解决图片轮播切换请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
如何如何解决flex文本溢出问题小结

flex布局中子项目尺寸不受flex-shrink限制的问题如何解决

详解overflow:hidden的作用(溢出隐藏、清除浮动、如何解决外边距塌陷)

css display table 自适应高度、宽度问题的如何解决

css如何实现0.5px线条如何解决移动端兼容问题(推荐)