返回

告别左右滑动!将百度新闻轮播图的左右切换按钮魔改成上下切换按钮

前端

之前,我们已经成功地将百度新闻同款悬浮变形的左右切换按钮“实现”了出来,其实就是照抄浏览器解析出来的相关的CSS样式。这一对按钮左右分布,平时不显,低调做人,简约端庄。一旦鼠标指针悬浮于上,箭头就会用一个动效的时间,随着你的手势,如影随形,有一种若隐若现的感觉。左右切换按钮固然好用,但在实际的使用过程中,我发现了一个小问题。

左右切换按钮的局限性

左右切换按钮有一个局限性,就是当轮播图只有一张图片时,左右切换按钮就失去了作用,因为此时轮播图没有下一张或上一张图片可以切换。而且,左右切换按钮在移动端并不是很友好,因为移动端的屏幕空间有限,左右切换按钮很容易被手指挡住。

上下切换按钮的优势

为了解决左右切换按钮的局限性,我决定将百度新闻轮播图的左右切换按钮魔改成上下切换按钮。上下切换按钮具有以下几个优势:

  • 当轮播图只有一张图片时,上下切换按钮仍然可以正常工作,因为轮播图可以上下循环滚动。
  • 上下切换按钮在移动端更加友好,因为上下切换按钮位于屏幕的顶部和底部,不容易被手指挡住。
  • 上下切换按钮可以更加直观地反映轮播图的滚动方向,因为轮播图是上下滚动的,而左右切换按钮是左右滚动的。

如何将左右切换按钮魔改成上下切换按钮

将百度新闻轮播图的左右切换按钮魔改成上下切换按钮,需要修改以下几个地方:

  • HTML代码:将左右切换按钮的HTML代码修改为上下切换按钮的HTML代码。
  • CSS代码:将左右切换按钮的CSS代码修改为上下切换按钮的CSS代码。
  • JavaScript代码:将左右切换按钮的JavaScript代码修改为上下切换按钮的JavaScript代码。

HTML代码

将以下代码添加到百度新闻轮播图的HTML代码中:

<div class="arrow-up"></div>
<div class="arrow-down"></div>

CSS代码

将以下代码添加到百度新闻轮播图的CSS代码中:

.arrow-up {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 30px;
  height: 30px;
  background-color: #000;
  border-radius: 50%;
  cursor: pointer;
}

.arrow-down {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 50%);
  width: 30px;
  height: 30px;
  background-color: #000;
  border-radius: 50%;
  cursor: pointer;
}

JavaScript代码

将以下代码添加到百度新闻轮播图的JavaScript代码中:

// 获取上下切换按钮
const arrowUp = document.querySelector('.arrow-up');
const arrowDown = document.querySelector('.arrow-down');

// 获取轮播图
const carousel = document.querySelector('.carousel');

// 获取轮播图中的图片
const slides = carousel.querySelectorAll('.slide');

// 获取轮播图的当前索引
let currentIndex = 0;

// 上下切换按钮的点击事件监听器
arrowUp.addEventListener('click', () => {
  // 如果当前索引不是0,则将当前索引减1
  if (currentIndex > 0) {
    currentIndex--;
  }

  // 将轮播图的当前索引设置为currentIndex
  carousel.setAttribute('data-current', currentIndex);
});

arrowDown.addEventListener('click', () => {
  // 如果当前索引不是轮播图中图片的数量减1,则将当前索引加1
  if (currentIndex < slides.length - 1) {
    currentIndex++;
  }

  // 将轮播图的当前索引设置为currentIndex
  carousel.setAttribute('data-current', currentIndex);
});

总结

通过以上步骤,就可以将百度新闻轮播图的左右切换按钮魔改成上下切换按钮。上下切换按钮具有以上几个优势:

  • 当轮播图只有一张图片时,上下切换按钮仍然可以正常工作,因为轮播图可以上下循环滚动。
  • 上下切换按钮在移动端更加友好,因为上下切换按钮位于屏幕的顶部和底部,不容易被手指挡住。
  • 上下切换按钮可以更加直观地反映轮播图的滚动方向,因为轮播图是上下滚动的,而左右切换按钮是左右滚动的。