移动视图图像上的滑块未显示

Posted

技术标签:

【中文标题】移动视图图像上的滑块未显示【英文标题】:Slider on mobile view images not showing 【发布时间】:2020-12-12 08:37:02 【问题描述】:

这是我从 codepen 获得的滑块代码,我对其进行了一些小改动,但在代码更改前后,此滑块不会在任何移动视图上显示/加载图像,我不不知道怎么解决。。 请帮忙!!

我的 codepen 链接

https://codepen.io/guenon/pen/GRZrqgq

一些 CSS 链接

https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css

https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css

一些 JS 链接

https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js

https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js

jQuery(function($)
    
    
    $('.flickfeed').on('init', function()
        var currentfirst = $(this).find('.slick-active').first();
        $(currentfirst).addClass('firster');
        // console.log('thishere');
        var currentlast = $(this).find('.slick-active').last();
        $(currentlast).addClass('laster');
        );   
    

    
    function getSliderSettings()
        return 
            dots: false,
          infinite: true,
          speed: 300,
                    autoplay: true,
          slidesToShow: 6.17,
          slidesToScroll: 2,
          responsive: [
            
              breakpoint: 1024,
              settings: 
                slidesToShow: 2.25,
                slidesToScroll: 2

              
            ,
            
              breakpoint: 600,
              settings: 
                slidesToShow: 2,
                slidesToScroll: 1
              
            ,
            
              breakpoint: 480,
              settings: 
                slidesToShow: 1,
                slidesToScroll: 1
              
            
            // You can unslick at a given breakpoint now by adding:
            // settings: "unslick"
            // instead of a settings object
          ]
        
    
   
    
    
    $('.flickfeed').slick(getSliderSettings());
    
    $( ".slick-slide" ).mouseenter(function() 
        
       if ($(this).hasClass("firster")) 
         //  console.log('firster');
           var hoverslide = $(this);
            $(hoverslide).nextAll().addClass('furthernextslides');
          //  $(hoverslide).prevAll().addClass('prevslides'); 
        
       else if ($(this).hasClass("laster"))
           var hoverslide = $(this);
            $(hoverslide).prevAll().addClass('furtherprevslides');
        else
             var hoverslide = $(this);
            $(hoverslide).nextAll().addClass('nextslides');
            $(hoverslide).prevAll().addClass('prevslides'); 
        
        
      
    );
    
    $( ".slick-slide" ).mouseleave(function() 
      $(this).parent().find( ".slick-slide" ).removeClass('nextslides');
    $(this).parent().find( ".slick-slide" ).removeClass('prevslides');
      $(this).parent().find( ".slick-slide" ).removeClass('furthernextslides');
      $(this).parent().find( ".slick-slide" ).removeClass('furtherprevslides');
    );

    
  
    
    
    // on slide change, find the new first slide-active    
    $('.flickfeed').on('afterChange', function(event, currentSlide, nextSlide)
     var currentfirst = $(this).find('.slick-active').first();
     $(this).find( ".slick-slide" ).removeClass('firster');
     $(currentfirst).addClass('firster');
    var currentlast = $(this).find('.slick-active').last();
     $(this).find( ".slick-slide" ).removeClass('laster');
     $(currentlast).addClass('laster');
    );
    
    // on slide init, find the new first slide-active
   
    
    
 
);
body 
    background: #141414;
    color: #eee;


.slick-track

    display: flex !important;
  padding: 40px 3px;


.slick-slide 

    margin: 1px;
    height: inherit !important;
    
    > div     height: 100% !important;



button.slick-arrow 
    font-size: 0;
    line-height: 0;
    position: absolute;
    top: 0;
    display: block;
    height: 61.8%;
    top: 18%;
    background: rgba(0,0,0,.5);
    padding: 0;
    cursor: pointer;
    color: transparent;
    border: none;
    outline: none;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    z-index: 10;
   width: 2.5vw;
    background-repeat: no-repeat;
    background-position: center center;





button.slick-arrow.slick-next 
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='width:24px;height:24px' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z' /%3E%3C/svg%3E");
    right: 0px;

    


button.slick-arrow.slick-prev 
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='width:24px;height:24px' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z' /%3E%3C/svg%3E");
    left: 0px;
    
    



button.slick-disabled 
    opacity: 0!important;


.flickfeed 
    opacity:0;
 


.slick-initialized
    opacity:1;
    transition:opacity .3s ease-out;

 
.flix-parents overflow: hidden;

.flix-parents
    position: relative;
    z-index: 5;
   // height: 500px;

.flixer 
    position: relative;
    z-index: 5;
    height: 500px; 



.video-list-slider 
    background: 0 0;
    border: none;
    border-radius: 0;
    overflow: visible;


.slick-list 
 overflow: visible;   


.flickfeed .slick-slide .card 
    border-radius: 0px;
@include anislow;
    //animation-delay: 0.5s;
    padding-top: 55%; background-size: cover; background-repeat: no-repeat; border:0;



.slick-slide 
  //  transition-delay: 0.5s;
    @include anislow;
    &:hover 
      //  animation-delay: 0.5s;
      transform: scale(1.5); z-index: 3;


.prevslides 
    transform: translateX(-3.95vw);
    


.nextslides 
    transform: translateX(3.95vw);
    

.furthernextslides 
    transform: translateX(7.9vw);
    
.furtherprevslides 
    transform: translateX(-7.9vw);
    

.firster transform-origin: center left!important;
.laster transform-origin: center right!important;



.flickfeed .card position: relative; overflow: hidden;
    .back position: absolute; height: 100%; width: 100%; 
   // background-image: linear-gradient(rgba(0,0,0,0),#000);
   // background-color: #222;
        background-image: linear-gradient(to top, rgba(0, 0, 0, 0.7) 10%, rgba(0, 0, 0, 0));
    background-color: transparent;
    top: 100%; @include anislow;
        h1, p margin: 0; color: #fff;
    
    &:hover .backtop: 1px;




.back .h4 font-size: 14px; font-weight: 700; margin-bottom: 5px;
.back p font-size: 12px; oapcity: 0.9;

button.more  position: absolute;
bottom: 10px; width: 100%; height: 10%;
    left: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='width:24px;height:24px' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z' /%3E%3C/svg%3E");
    left: 0px;
    background-repeat: no-repeat;
    background-position: center center;
    color: transparent; font-size: 0px;
    
background-color: transparent; border: 0; outline: 0;
<section class="py-5 flix-parents">
     
       <div class="flickfeed video-list-slider pl-5">

                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1593488239201-b6932a52f60b?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
   
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1593462414355-1adfd9d3a65a?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
   
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1593811167573-aec47a12a91b?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
    
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1593203859719-437110bd5d91?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
    
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1592727995117-4cdc7ee6fcb4?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1592981669578-022a13f5c0a2?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
    
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1594038658121-219eda06322c?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
    
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1591971997606-690b401a6f12?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
    
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1593874105671-d745ff7ce8ba?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
    
</article>
                 
                 <article class="card" style="background-image: url('https://images.unsplash.com/photo-1592312986148-0286379c890d?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ');">
</article>
                 
                 
         </div>
      </section> 

【问题讨论】:

你能创建一个codepen演示吗? 是的,我有@RayeesAC,你想要链接还是别的什么?? 是的,这对于检查代码来说太复杂了。顺便说一句谢谢:) @RayeesAC codepen.io/guenon/pen/GRZrqgq 请告诉我链接是否可以访问。 【参考方案1】:

请试试这个,

Codepen 演示:https://codepen.io/Rayeesac/pen/rNejyvM

$(".flickfeed").on("init", function () 
  var currentfirst = $(this).find(".slick-active").first();
  $(currentfirst).addClass("firster");
  var currentlast = $(this).find(".slick-active").last();
  $(currentlast).addClass("laster");
);

$(".flickfeed").slick(
  dots: false,
  infinite: true,
  speed: 300,
  autoplay: true,
  slidesToShow: 6.17,
  slidesToScroll: 2,
  responsive: [
   
    breakpoint: 1024,
    settings: 
     slidesToShow: 2.25,
     slidesToScroll: 2,
    ,
   ,
   
    breakpoint: 600,
    settings: 
     slidesToShow: 2,
     slidesToScroll: 1,
    ,
   ,
   
    breakpoint: 480,
    settings: 
     slidesToShow: 1,
     slidesToScroll: 1,
    ,
   ,
  ],
);

$(".slick-slide").mouseenter(function () 
  if ($(this).hasClass("firster")) 
   var hoverslide = $(this);
   $(hoverslide).nextAll().addClass("furthernextslides");
   else if ($(this).hasClass("laster")) 
   var hoverslide = $(this);
   $(hoverslide).prevAll().addClass("furtherprevslides");
   else 
   var hoverslide = $(this);
   $(hoverslide).nextAll().addClass("nextslides");
   $(hoverslide).prevAll().addClass("prevslides");
  
);

$(".slick-slide").mouseleave(function () 
  $(this).parent().find(".slick-slide").removeClass("nextslides");
  $(this).parent().find(".slick-slide").removeClass("prevslides");
  $(this).parent().find(".slick-slide").removeClass("furthernextslides");
  $(this).parent().find(".slick-slide").removeClass("furtherprevslides");
);

//on slide change, find the new first slide-active
$(".flickfeed").on("afterChange", function (event, slick, currentSlide, nextSlide) 
  var currentfirst = $(this).find(".slick-active").first();
  $(this).find(".slick-slide").removeClass("firster");
  $(currentfirst).addClass("firster");
  var currentlast = $(this).find(".slick-active").last();
  $(this).find(".slick-slide").removeClass("laster");
  $(currentlast).addClass("laster");
);
body 
 background: #141414 !important;
 color: #eee;

.slick-slide img 
 height: 150px;

.slick-track 
 display: flex !important;
 padding: 40px 3px;
 position: absolute;
 top: 0;
 left: 0;

.slick-slide 
 margin: 1px;
 height: inherit !important;

.slick-slide > div 
 height: 100% !important;

button.slick-arrow.slick-prev 
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='width:24px;height:24px' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z' /%3E%3C/svg%3E");
 left: 0px !important;

button.slick-arrow.slick-next 
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='width:24px;height:24px' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z' /%3E%3C/svg%3E");
 right: 0px !important;

button.slick-disabled 
 opacity: 0 !important;

button.slick-arrow 
 font-size: 0;
 line-height: 0;
 position: absolute;
 display: block;
 height: 61.8%;
 top: 15%;
 background: rgba(0, 0, 0, 0.5);
 padding: 0;
 cursor: pointer;
 color: transparent;
 border: none;
 outline: none;
 text-rendering: auto;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 z-index: 10;
 width: 2.5vw;
 background-repeat: no-repeat;
 background-position: center center;

.flickfeed 
 opacity: 0;

.slick-initialized 
 opacity: 1;
 transition: opacity 0.3s ease-out;

.flix-parents 
 overflow: hidden;

.flix-parents 
 position: relative;
 z-index: 5;

.flixer 
 position: relative;
 z-index: 5;
 height: 500px;

.slick-list 
 overflow: visible;

.slick-slide:hover 
 transform: scale(1.5) !important;
 z-index: 3;

.prevslides 
 transform: translateX(-3.95vw);

.nextslides 
 transform: translateX(3.95vw);

.furthernextslides 
 transform: translateX(7.9vw);

.furtherprevslides 
 transform: translateX(-7.9vw);


.firster 
 transform-origin: center left !important;

.laster 
 transform-origin: center right !important;

.slick-list 
 display: flex;
 justify-content: center;
 align-items: center;

.flickfeed .slick-slide .card 
 background-size: cover;
 background-repeat: no-repeat;
 border: 0;

.flickfeed .slick-slide 
 transform: scale(1);
 position: relative;

.flickfeed .slick-active:first-child .card 
 transform-origin: center left;

.flickfeed .slick-track 
 height: auto;

.flickfeed .slick-list 
 overflow-y: visible;
 height: 255px;
 overflow-x: hidden;

@media only screen and (max-width: 640px) 
 button.slick-arrow 
  width: 5vw;
 
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css" integrity="sha512-yHknP1/AwR+yx26cB1y0cjvQUMvEa2PFzt1c9LlS4pRQ5NOTZFWbhBig+X9G9eYW/8m0/4OXNx8pxJ6z57x0dw==" crossorigin="anonymous" />

<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js" integrity="sha512-HGOnQO9+SP1V92SrtZfjqxxtLmVzqZpjFFekvzZVWoiASSQgSr4cw9Kqd2+l8Llp4Gm0G8GIFJ4ddwZilcdb8A==" crossorigin="anonymous"></script>

<section class="py-5 flix-parents">
 <div class="flickfeed video-list-slider">
  <img class="card" src="https://images.unsplash.com/photo-1593488239201-b6932a52f60b?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1593462414355-1adfd9d3a65a?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1593811167573-aec47a12a91b?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1593203859719-437110bd5d91?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1592727995117-4cdc7ee6fcb4?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1592981669578-022a13f5c0a2?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1594038658121-219eda06322c?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1591971997606-690b401a6f12?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1593874105671-d745ff7ce8ba?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
  <img class="card" src="https://images.unsplash.com/photo-1592312986148-0286379c890d?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" />
 </div>
</section>

【讨论】:

请试试这个 sn-p 和 codepen 演示。这太复杂了我更改了太多代码。顺便说一句,抱歉耽搁了.. 太棒了..它按我的意愿工作..非常感谢..

以上是关于移动视图图像上的滑块未显示的主要内容,如果未能解决你的问题,请参考以下文章

滑块未显示所有图像

如何以编程方式设置控制图像视图宽度的滑块

IOS中水平滚动视图问题内的滑块

如何连续更新一堆表格单元格上的滑块?

引导滑块未在 iphone 6、移动设备上显示工具提示

使用 UIAppearance 渲染图像