Slick Slider上的自定义V形符号和圆圈 - 单击后圆圈消失

时间:2017-06-13 13:02:19

标签: javascript jquery css css3 slick.js

我为Slick Slider Carousel创建了一个带有圆圈的自定义左右V形,但是当我点击左侧或右侧V形时,圆圈消失了。当我点击圆圈外面或点击对面的雪佛龙时,圆圈会回来。我认为它与覆盖当前元素的before伪类有关。有人可以帮助我并解释我做错了什么吗?我有一份工作JS Fiddle here。我不知道为什么CSS没有在这里的代码片段中首先加载,所以你看不到它在这里工作。检查JSFiddle,谢谢。

$('.carousel-one').slick({
  arrows: true,
  infinite: true,
  speed: 1000,
  slidesToShow: 1,
  centerMode: true,
  variableWidth: true,
  autoplay: true,
  autoplaySpeed: 2000
});
.slick-next:before {
  content: '';
  display: inline-block;
  width: 15px;
  height: 15px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
}

.slick-prev:before {
  content: '';
  display: inline-block;
  width: 15px;
  height: 15px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  -webkit-transform: rotate(-135deg);
  -moz-transform: rotate(-135deg);
  -o-transform: rotate(-135deg);
  transform: rotate(-135deg);
}

.slick-prev:hover,
.slick-next:hover {
  background-color: rgba(255, 255, 255, 0.7);
  width: 45px;
  height: 45px;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  -o-border-radius: 50%;
  border-radius: 50%;
}

.slick-prev:hover {
  padding-left: 8px;
}

.slick-next:hover {
  padding-right: 8px;
}

.slick-next {
  right: 20px;
  padding-right: 8px;
  background-color: rgba(255, 255, 255, 0.5);
  width: 45px;
  height: 45px;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  -o-border-radius: 50%;
  border-radius: 50%;
}

.slick-prev {
  left: 20px;
  padding-left: 8px;
  background-color: rgba(255, 255, 255, 0.5);
  width: 45px;
  height: 45px;
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  -o-border-radius: 50%;
  border-radius: 50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.min.js"></script>
<div class="carousel-one">
  <div><img src="http://lorempixel.com/400/200" alt="Image three"></div>
  <div><img src="http://lorempixel.com/400/200" alt="Image one"></div>
  <div><img src="http://lorempixel.com/300/200" alt="Image two"></div>
  <div><img src="http://lorempixel.com/320/200" alt="Image four"></div>
  <div><img src="http://lorempixel.com/400/200" alt="Image five"></div>
  <div><img src="http://lorempixel.com/200/200" alt="Image seven"></div>
  <div><img src="http://lorempixel.com/300/200" alt="Image six"></div>
</div>

1 个答案:

答案 0 :(得分:1)

单击此按钮时,焦点会亮起。有一个css伪选择器:focus,它以聚焦状态为目标。您需要覆盖聚焦元素的现有样式,如下面的示例

.slick-prev:focus, .slick-next:focus {
  background-color: rgba(255, 255, 255, 0.5) !important;
}