javascript经典特效分享 手风琴、轮播图、图片滑动

yizhihongxing

JavaScript经典特效分享

在前端开发中,JavaScript不仅可以用于数据交互、页面交互等,还可以用来实现各种各样的特效,比如手风琴、轮播图、图片滑动等。本文将一一介绍这三种常见的JavaScript特效的实现方法。

手风琴效果

手风琴效果就是指页面上有多个盒子,当用户单击某个盒子时,该盒子会变大,同时其他盒子变小。这种效果常用于呈现一些重要或突出的内容。

下面是手风琴效果的实现方法:

  1. HTML部分
<div class="accordion">
  <div class="accordion-item">盒子1</div>
  <div class="accordion-item">盒子2</div>
  <div class="accordion-item">盒子3</div>
</div>
  1. CSS部分
.accordion-item {
  width: 100%;
  height: 50px;
  background-color: #e0e0e0;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  cursor: pointer;
  transition: all 0.5s ease;
}

.accordion-item.active {
  width: 80%;
  height: 200px;
  border-radius: 10px;
  background-color: #5b9aff;
  color: #fff;
}
  1. JavaScript部分
const accordionItems = document.querySelectorAll('.accordion-item');

accordionItems.forEach(item => {
  item.addEventListener('click', event => {
    accordionItems.forEach(item => {
      item.classList.remove('active');
    })
    event.target.classList.add('active');
  });
});

轮播图

轮播图是网站常见的一种图片展示方式,它可以用来展示产品图片、文章配图等。

下面是轮播图的实现方法:

  1. HTML部分
<div class="carousel">
  <div class="carousel-inner">
    <div class="carousel-item">
      <img src="./img/1.jpg" alt="图片1">
    </div>
    <div class="carousel-item">
      <img src="./img/2.jpg" alt="图片2">
    </div>
    <div class="carousel-item">
      <img src="./img/3.jpg" alt="图片3">
    </div>
  </div>
  <div class="carousel-control">
    <span class="prev">&lt;</span>
    <span class="next">&gt;</span>
  </div>
</div>
  1. CSS部分
.carousel {
  width: 100%;
  overflow: hidden;
}

.carousel-inner {
  display: flex;
  transition: all 0.5s ease;
}

.carousel-item {
  width: 100%;
  flex: 0 0 100%;
}

.carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.carousel-control {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  justify-content: space-between;
  z-index: 1;
  pointer-events: none;
}

.carousel-control span {
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  background-color: rgba(0, 0, 0, 0.3);
  color: #fff;
  cursor: pointer;
  transition: all 0.3s ease;
}

.carousel-control span:hover {
  background-color: rgba(0, 0, 0, 0.5);
}
  1. JavaScript部分
const carouselInner = document.querySelector('.carousel-inner');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');

const imgCount = carouselInner.querySelectorAll('.carousel-item').length;
let imgIndex = 0;

prevBtn.addEventListener('click', () => {
  imgIndex--;
  if (imgIndex < 0) {
    imgIndex = imgCount - 1;
  }
  slideImg(imgIndex);
});

nextBtn.addEventListener('click', () => {
  imgIndex++;
  if (imgIndex >= imgCount) {
    imgIndex = 0;
  }
  slideImg(imgIndex);
});

function slideImg(index) {
  carouselInner.style.transform = `translateX(-${index * 100}%)`;
}

图片滑动

图片滑动是指页面上有多张图片,当用户鼠标悬停在某张图片上时,该图片会向左或向右滑动一定的距离,以显示隐藏内容。

下面是图片滑动的实现方法:

  1. HTML部分
<div class="image-list">
  <div class="image-item">
    <img src="./img/1.jpg" alt="图片1">
    <div class="image-desc">图片1的描述</div>
  </div>
  <div class="image-item">
    <img src="./img/2.jpg" alt="图片2">
    <div class="image-desc">图片2的描述</div>
  </div>
  <div class="image-item">
    <img src="./img/3.jpg" alt="图片3">
    <div class="image-desc">图片3的描述</div>
  </div>
</div>
  1. CSS部分
.image-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

.image-item {
  position: relative;
  width: 300px;
  height: 200px;
  overflow: hidden;
}

.image-item:hover .image-desc {
  left: 0;
}

.image-item img {
  width: 100%;
  height: 100%;
  transition: all 0.5s ease;
}

.image-desc {
  position: absolute;
  left: -100%;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  transition: all 0.5s ease;
}

以上是三种常见的JavaScript特效的实现方法,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript经典特效分享 手风琴、轮播图、图片滑动 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS浮动所差生的内容溢出问题及清除浮动的方法小结

    这里是 “CSS浮动所产生的内容溢出问题及清除浮动的方法小结” 的完整攻略。 CSS浮动引发的内容溢出问题 CSS浮动可以使元素脱离文档流,但浮动的元素可能会导致其父级元素高度塌陷,甚至产生内容溢出的问题。这是因为浮动的元素不占据常规文档流中元素所占的位置,浮动元素的高度会被忽略,导致浮动元素所在的容器高度不正确。 示例一: <div class=&q…

    css 2023年6月10日
    00
  • dreamweaver cs5怎么创建CSS规则?

    以下是关于“Dreamweaver CS5怎么创建CSS规则”的完整攻略。 步骤一:打开CSS面板 首先,需要打开 Dreamweaver CS5 的 CSS 面板。可以通过以下步骤打开: 点击菜单栏中的“窗口”选项。 选择“CSS样式”选项。 CSS 面板将出现在 Dreamweaver CS5 的右侧。 步骤二:创建CSS规则 接下来,需要创建 CSS …

    css 2023年5月18日
    00
  • Django配置Bootstrap, js实现过程详解

    下面是关于Django配置Bootstrap和JS的实现过程的详细攻略。 步骤一:下载Bootstrap和jQuery库 首先,从Bootstrap官网(https://getbootstrap.com/),下载Bootstrap和jQuery库。下载完成后,将下载好的文件解压到项目的静态文件目录下。可以按照以下结构进行存放: your_project/ │…

    css 2023年6月9日
    00
  • 基于CSS3特效之动画:animation的应用

    我来详细讲解“基于CSS3特效之动画:animation的应用”的完整攻略,过程中将包含两条示例说明。 什么是CSS3动画 CSS3动画是指,利用CSS3定义的一系列动画属性和@keyframes规则来实现的动态效果。CSS3动画可以实现从一个状态到另一个状态的平滑过渡,从而让网页看起来更加生动、更有吸引力。 实现CSS3动画的基本步骤 定义动画关键帧 在C…

    css 2023年6月11日
    00
  • CSS教程:网页版面设计无效的10个原因

    下面是“CSS教程:网页版面设计无效的10个原因”的完整攻略: CSS教程:网页版面设计无效的10个原因 1. 语法错误 在CSS编写中,任何一个不正确的字符都可能导致整个CSS文件有效性失效。常见的语法错误包括拼写错误、忘记添加分号以及括号未成对等。所以,在编写CSS时,务必要仔细检查,以确保相应的语法正确。 示例: /* 错误示例 */ body { b…

    css 2023年6月10日
    00
  • 10分钟入门CSS3 Animation

    下面是针对“10分钟入门CSS3 Animation”的完整攻略: CSS3 Animation是什么 CSS3 Animation是CSS3中的一个模块,其主要作用是创建动态效果,使网页更加生动、活泼。通过CSS3 Animation,可以实现各种复杂的动画效果,如旋转、放大、缩小、褪色等。 CSS3 Animation的语法 CSS3 Animation…

    css 2023年6月9日
    00
  • CSS样式表层叠(cascade)处理冲突

    CSS样式表层叠处理是指当多个样式表或样式规则应用到同一个元素时,通过一定的规则来决定最终的样式表,从而保证样式的可维护性和可预测性。 下面是CSS样式表层叠处理的攻略: 样式表来源 首先,需要确定样式表的来源,有四种样式表来源: 浏览器默认样式表 用户样式表 代理样式表(如反病毒软件、广告屏蔽插件等) 作者样式表 其中,权重最高的是作者样式表,其次是用户样…

    css 2023年6月10日
    00
  • 21个神奇的CSS技巧

    下面是关于“21个神奇的CSS技巧”的完整攻略。 1. 使用伪元素,构建三角形 使用伪元素:before和:after,可以在元素中嵌入三角形形状,来实现一些独特的设计,示例代码如下: .arrow-up { position: relative; } .arrow-up:before { content: ""; position: a…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部