css - 旋转木马在图像更改时保持锚定到页面顶部

标签 css reactjs css-position react-slick

我正在使用 react-slick,我遇到的问题是每当轮播发生变化时,它都会自动锚定到页面顶部,而与您在页面上的位置无关。

这些都是我通过 css 所做的更改。

.slick-slider {
   position: relative;
}
.slick-dots {
    position: absolute;
    bottom: 10px;
    z-index: 1;
}

.slick-dots li.slick-active button:before {
    color: white;
    opacity: 1;
}

.slick-dots li button:before {
    color: white;
}

这些是我传递给组件的设置:

class Carousel extends React.Component {
    render() {
        const settings = {
            dots: true,
            speed: 500,
            slidesToShow: 0,
            slidesToScroll: 1,
            fade: true,
            autoplay: true,
            infinite: true,
            arrows: false
    };

    return (
        <Slider {...settings}>
            {testImages.map((i, index) => 
                <div key={index}>
                     <CarouselImage imageSrc={`${i}`} />
                </div>)}
        </Slider>
    );
  }
}

任何人都可以阐明我做错了什么以及为什么会这样吗?

呈现的 html:

<div class="slick-initialized slick-slider">
   <div class="slick-list">
      <div class="slick-track" style="opacity: 1; width: 5901px;">
         <div data-index="0" class="slick-slide slick-active slick-current" tabindex="-1" style="outline: none; position: relative; left: 0px; opacity: 1; visibility: visible; transition: opacity 500ms ease, visibility 500ms ease; width: 843px;">
            <div class="overflow-hidden carousel_image__container"><img class="carousel_image" src="https://via.placeholder.com/1900x1000/ff0000/000000" alt="Artist Carousel Image"></div>
         </div>
         <div data-index="1" class="slick-slide" tabindex="-1" style="outline: none; position: relative; left: -843px; opacity: 0; visibility: hidden; transition: opacity 500ms ease, visibility 500ms ease; width: 843px;">
            <div class="overflow-hidden carousel_image__container"><img class="carousel_image" src="https://via.placeholder.com/1900x1000/00ff00/000000" alt="Artist Carousel Image"></div>
         </div>
         <div data-index="2" class="slick-slide" tabindex="-1" style="outline: none; position: relative; left: -1686px; opacity: 0; visibility: hidden; transition: opacity 500ms ease, visibility 500ms ease; width: 843px;">
            <div class="overflow-hidden carousel_image__container"><img class="carousel_image" src="https://via.placeholder.com/1900x1000/0000ff/000000" alt="Artist Carousel Image"></div>
         </div>
      </div>
   </div>
   <ul class="slick-dots" style="display: block;">
      <li class="slick-active"><button>1</button></li>
      <li class=""><button>2</button></li>
      <li class=""><button>3</button></li>
   </ul>
</div>

最佳答案

似乎 absolute 位置元素没有受到 relative 容器元素的限制,它应该。

只是为了调试,在 css 中试试这个:

div.slick-initialized.slick-slider {
   position: relative!important;
}

如果有帮助,请尝试不使用 !important

如果 !important 是必需的,那么其他地方的一些样式可能会改变它的值。

如果这些都不起作用,请右键单击 slick-list div 元素,检查它并查看它的 css 代码。如有必要,您可以将其复制到您的问题中以供进一步审查。对 slick-track div 元素执行相同的操作。

关于css - 旋转木马在图像更改时保持锚定到页面顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49061505/

相关文章:

html - 样式表 "path/to/font-awesome/css/font-awesome-min.css"未加载,因为它的 MIME 类型 text/html 不是 text/css

"fill parent width?"的 CSS

javascript - 简单 react 应用程序中的数据结构

reactjs - 为什么 React 仍然渲染带有 Error Boundary 的子组件

css - 使用 MS Word 打开 html/css 文件 - 元素表 - 不应用文本换行

html - 小屏幕上的绝对定位布局问题

asp.net - 无法使用 css 移动 listView

jquery - tablesorter 删除一行后,排序留下了一个空白

reactjs - 我可以相信 react-devtools 不会侵犯我的隐私吗?

css - 将 textarea 占位符文本放在底部