带有 jarallax 库图像的光滑滑块在浏览器最大化后恢复后大约是一半大小

Slick slider with jarallax library images are around half size at browser's maximize after restore down

大家好,新年快乐, 我将 slick jarallax javascript 库一起用于视差图像滑块。图像充当背景并处于背景大小:封面模式。当浏览器从全尺寸恢复到原来的尺寸,然后稍微增加其宽度时,图像覆盖了一半以上的区域,其余部分留空。以全尺寸制作浏览器是一样的。 我想这两个库之间存在冲突,但可能是 css 中某处的错误。如果有人愿意提供帮助,那就太好了。 谢谢, CP

$(document).ready(function(){
      // slider activity
   $('.fade').slick({
    infinite: true,
    autoplay: true,
    draggable: false,
                prevArrow: '<div class="slider-nav"><span class="span-left"><i class="prev fa fa-chevron-left" name="prev" aria-hidden="true"></i><i class="prev fa fa-chevron-circle-left" name="prev" aria-hidden="true"></i></span></div>',
                nextArrow: '<div class="slider-nav"><span class="span-right"><i class="next fa fa-chevron-right" name="next" aria-hidden="true"></i><i class="next fa fa-chevron-circle-right" name="next" aria-hidden="true"></i></span></div>',    
    pauseOnHover: false,
    useOnFocus: false,
    waitForAnimate: false,
    speed: 1500,
    autoplaySpeed: 7000,
    fade: true,
    cssEase: 'linear'
   });
   // parallax activity
   $('.jarallax').jarallax({
    speed: -0.2,
   });
  });
body {
   position: absolute;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    font-size: 15px;
   background: white;
}
/* image slider */
.image-slider {
    position: relative;
    height: 100%;
    width: 100%;
}
.slider {
    position: absolute;
    width: 100%;
    height: 100%;
}
.slider div.one {
    background: url(https://cdn.pixabay.com/photo/2014/10/26/15/03/garden-by-the-bay-503897_960_720.jpg) no-repeat center center;
    position: absolute;
    display: inline;
    width: 100%;
    height: 100%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}
.slider div.two {
    background: url(https://cdn.pixabay.com/photo/2016/04/20/12/51/regensburg-1341093_960_720.jpg) no-repeat center center;
    position: absolute;
    display: inline;
    width: 100%;
    height: 100%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}
.slider div.three {
    background: url(https://cdn.pixabay.com/photo/2017/12/16/22/23/regensburg-3023439_960_720.jpg) no-repeat center center;
    position: absolute;
    display: inline;
    width: 100%;
    height: 100%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}
.slider .one a {
 position: absolute;
 top: 50%;
 z-index: 5;
}
.slider-nav {
    position: absolute;
    transform: translateY(-50%);
    width: 100%;
    top: 50%;
    z-index: 2;
}
@media screen and (min-width: 1025px) {
 .slider-nav .span-left .fa-chevron-left:before {
     position: absolute;
     content: "\f053";
     margin: -29px 15px;
     opacity: 1;
     transition: opacity 0.3s;
 }
 .slider-nav .span-left:hover .fa-chevron-left:before {
     position: absolute;
     content: "\f053";
     margin: 0 15px;
     opacity: 0;
     transition: opacity 0.3s, margin 0.3s;
 }
 .slider-nav .span-left .fa-chevron-circle-left:before {
     content: "\f137";
     font-size: 46px;
     margin: 0 3px;
     opacity: 0;
     transition: opacity 0.3s;
 }
 .slider-nav .span-left:hover .fa-chevron-circle-left:before {
     content: "\f137";
     font-size: 46px;
     margin: 0 3px;
     opacity: 1;
     transition: opacity 0.3s;
 }
 .slider-nav .span-right .fa-chevron-right:before {
     position: absolute;
     content: "\f054";
     margin: -29px 4px;
     opacity: 1;
     transition: opacity 0.3s;
 }
 .slider-nav .span-right:hover .fa-chevron-right:before {
     position: absolute;
     content: "\f054";
     margin: 0 4px;
     opacity: 0;
     transition: opacity 0.3s, margin 0.3s;
 }
 .slider-nav .span-right .fa-chevron-circle-right:before {
     content: "\f138";
     font-size: 46px;
     margin: -12px -13px;
     opacity: 0;
     transition: opacity 0.3s;
 }
 .slider-nav .span-right:hover .fa-chevron-circle-right:before {
     content: "\f138";
     font-size: 46px;
     margin: -12px -13px;
     opacity: 1;
     transition: opacity 0.3s;
 }
}
.slider-nav span.span-left, .slider-nav span.span-right {
    position: absolute;
    border-radius: 50%;
    cursor: pointer;
}
.slider-nav span.span-left {
    left: 30px;
}
.slider-nav span.span-right {
    right: 60px;
}
.slider-nav span i {
    color: white;
    font-size: 26px;
}
.slider-nav div {
    position: absolute;
    left: 36px;
    text-align: left;
    font-size: 36px;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    z-index: 2;
    bottom: 4px;
    transition: all 0.3s;
}
@media screen and (max-width: 1024px) {
 .slider-nav .span-left .fa-chevron-left:before {
     position: absolute;
     content: "\f053";
     margin: -29px 15px;
        opacity: 0.5;
 }
 .slider-nav .span-right .fa-chevron-right:before {
     position: absolute;
     content: "\f054";
     margin: -29px 4px;
        opacity: 0.5;
 }
 .slider-nav .span-left .fa-chevron-circle-left:before {
  display: none;
 }
 .slider-nav .span-right .fa-chevron-circle-right:before {
  display: none;
 }
}
/* content */
.content {
 position: relative;
 width: 100%;
 height: 1000px;
}
/* slick slider correction for 1px background image height*/
/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list
{
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
       -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
         -o-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    height: 100%;
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
    margin-left: auto;
    margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jarallax/1.9.3/jarallax.min.js"></script>
<div class="image-slider"> <!-- IMAGE SLIDER -->
  <div class="slider fade">
   <div class="one jarallax"></div>
   <div class="two jarallax"></div>
   <div class="three jarallax"></div>
  </div>
 </div>
 <div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto cupiditate, aperiam illum sapiente. Fugiat, explicabo, vel hic laborum nisi ratione ut molestiae reiciendis libero tenetur veritatis quam, provident consequatur alias.</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>

我居然找到了解决办法。问题在于 jarallax 库(我猜),其中由名为 'jarallax-container-[n]' 的库创建的 ID 被赋予了宽度,以某种方式将其固定在某个最大宽度参数上。将此代码添加到我的 CSS 中,现在一切正常。

div[id*="jarallax-container"] div {
width: 100% !important;
}

如果其他人遇到了这个问题,我会添加这个解决方案。

$(document).ready(function(){
      // slider activity
   $('.fade').slick({
    infinite: true,
    autoplay: true,
    draggable: false,
                prevArrow: '<div class="slider-nav"><span class="span-left"><i class="prev fa fa-chevron-left" name="prev" aria-hidden="true"></i><i class="prev fa fa-chevron-circle-left" name="prev" aria-hidden="true"></i></span></div>',
                nextArrow: '<div class="slider-nav"><span class="span-right"><i class="next fa fa-chevron-right" name="next" aria-hidden="true"></i><i class="next fa fa-chevron-circle-right" name="next" aria-hidden="true"></i></span></div>',    
    pauseOnHover: false,
    useOnFocus: false,
    waitForAnimate: false,
    speed: 1500,
    autoplaySpeed: 7000,
    fade: true,
    cssEase: 'linear'
   });
   // parallax activity
   $('.jarallax').jarallax({
    speed: -0.2,
   });
  });
body {
   position: absolute;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    font-size: 15px;
   background: white;
}
/* image slider */
.image-slider {
    position: relative;
    height: 100%;
    width: 100%;
}
.slider {
    position: absolute;
    width: 100%;
    height: 100%;
}
.slider div.one {
    background: url(https://cdn.pixabay.com/photo/2014/10/26/15/03/garden-by-the-bay-503897_960_720.jpg) no-repeat center center;
    position: absolute;
    display: inline;
    width: 100%;
    height: 100%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}
.slider div.two {
    background: url(https://cdn.pixabay.com/photo/2016/04/20/12/51/regensburg-1341093_960_720.jpg) no-repeat center center;
    position: absolute;
    display: inline;
    width: 100%;
    height: 100%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}
.slider div.three {
    background: url(https://cdn.pixabay.com/photo/2017/12/16/22/23/regensburg-3023439_960_720.jpg) no-repeat center center;
    position: absolute;
    display: inline;
    width: 100%;
    height: 100%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}
.slider .one a {
 position: absolute;
 top: 50%;
 z-index: 5;
}
.slider-nav {
    position: absolute;
    transform: translateY(-50%);
    width: 100%;
    top: 50%;
    z-index: 2;
}
@media screen and (min-width: 1025px) {
 .slider-nav .span-left .fa-chevron-left:before {
     position: absolute;
     content: "\f053";
     margin: -29px 15px;
     opacity: 1;
     transition: opacity 0.3s;
 }
 .slider-nav .span-left:hover .fa-chevron-left:before {
     position: absolute;
     content: "\f053";
     margin: 0 15px;
     opacity: 0;
     transition: opacity 0.3s, margin 0.3s;
 }
 .slider-nav .span-left .fa-chevron-circle-left:before {
     content: "\f137";
     font-size: 46px;
     margin: 0 3px;
     opacity: 0;
     transition: opacity 0.3s;
 }
 .slider-nav .span-left:hover .fa-chevron-circle-left:before {
     content: "\f137";
     font-size: 46px;
     margin: 0 3px;
     opacity: 1;
     transition: opacity 0.3s;
 }
 .slider-nav .span-right .fa-chevron-right:before {
     position: absolute;
     content: "\f054";
     margin: -29px 4px;
     opacity: 1;
     transition: opacity 0.3s;
 }
 .slider-nav .span-right:hover .fa-chevron-right:before {
     position: absolute;
     content: "\f054";
     margin: 0 4px;
     opacity: 0;
     transition: opacity 0.3s, margin 0.3s;
 }
 .slider-nav .span-right .fa-chevron-circle-right:before {
     content: "\f138";
     font-size: 46px;
     margin: -12px -13px;
     opacity: 0;
     transition: opacity 0.3s;
 }
 .slider-nav .span-right:hover .fa-chevron-circle-right:before {
     content: "\f138";
     font-size: 46px;
     margin: -12px -13px;
     opacity: 1;
     transition: opacity 0.3s;
 }
}
.slider-nav span.span-left, .slider-nav span.span-right {
    position: absolute;
    border-radius: 50%;
    cursor: pointer;
}
.slider-nav span.span-left {
    left: 30px;
}
.slider-nav span.span-right {
    right: 60px;
}
.slider-nav span i {
    color: white;
    font-size: 26px;
}
.slider-nav div {
    position: absolute;
    left: 36px;
    text-align: left;
    font-size: 36px;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    z-index: 2;
    bottom: 4px;
    transition: all 0.3s;
}
@media screen and (max-width: 1024px) {
 .slider-nav .span-left .fa-chevron-left:before {
     position: absolute;
     content: "\f053";
     margin: -29px 15px;
        opacity: 0.5;
 }
 .slider-nav .span-right .fa-chevron-right:before {
     position: absolute;
     content: "\f054";
     margin: -29px 4px;
        opacity: 0.5;
 }
 .slider-nav .span-left .fa-chevron-circle-left:before {
  display: none;
 }
 .slider-nav .span-right .fa-chevron-circle-right:before {
  display: none;
 }
}
/* content */
.content {
 position: relative;
 width: 100%;
 height: 1000px;
}
/* slick slider correction for 1px background image height*/
/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list
{
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
       -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
         -o-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    height: 100%;
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
    margin-left: auto;
    margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}
div[id*="jarallax-container"] div {
 width: 100% !important;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jarallax/1.9.3/jarallax.min.js"></script>
<div class="image-slider"> <!-- IMAGE SLIDER -->
  <div class="slider fade">
   <div class="one jarallax"></div>
   <div class="two jarallax"></div>
   <div class="three jarallax"></div>
  </div>
 </div>
 <div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto cupiditate, aperiam illum sapiente. Fugiat, explicabo, vel hic laborum nisi ratione ut molestiae reiciendis libero tenetur veritatis quam, provident consequatur alias.</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>

另一种可能的解决方案:

jQuery(document).ready(function($) {
    $('.jarallax').jarallax({
        speed: 0.5,
    });  
    $(window).resize(function() {
        $('.jarallax').jarallax('onResize');
        $('.jarallax').css('width', $(window).width() + 'px');
     });
    $(window).on('orientationchange', function() {
        $('.jarallax').jarallax('onResize');
        $('.jarallax').css('width', $(window).width() + 'px');
     });
});