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

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解决H5布局中的吸顶吸底的实现步骤

    首先我们需要了解一下CSS的一些基本概念和属性。 CSS基础知识 position position 属性指定了元素的定位类型,有以下几种取值: static:默认值。元素在正常文档流中,不做定位。 relative:相对定位,相对于元素在正常文档流中的位置进行定位。 absolute:绝对定位,相对于最近的非 static 定位父元素进行定位。 fixed…

    css 2023年6月10日
    00
  • 用css margin去掉横排图片之间的间距

    首先需要明确一点,图片之间存在间距的原因通常是由于其默认的外边距(margin)和内边距(padding)引起的。接下来,提供以下两种方法可以去掉横排图片之间的间距。 方法一:设置图片的display属性 将图片的display属性设置为“inline-block”,然后设置其外边距(margin)为负值就可以去掉图片之间的间距了。比如: img { dis…

    css 2023年6月10日
    00
  • 第一次接触神奇的Bootstrap基础排版

    当你第一次接触Bootstrap基础排版时,可能会有些困惑。不过,通过一些简单的步骤和几个示例,你将能轻松学会Bootstrap基础排版。 步骤 引入Bootstrap的CSS和JS文件 在你的HTML文件中,你需要引用Bootstrap的CSS和JS文件。你可以在Bootstrap的官方网站下载这些文件,或者在CDN上引用,如下所示: <!– 引入…

    css 2023年6月10日
    00
  • css 怎么清除浮动

    在 CSS 中,浮动是一种常见的布局方式,但是浮动元素可能会影响其他元素的布局。因此,我们需要清除浮动。下面是一个完整的攻略,包含了如何清除浮动的过程和两个示例说明。 如何清除浮动 1. 使用 clear 属性 我们可以使用 clear 属性来清除浮动。下面是一个示例: <div class="container"> <…

    css 2023年5月18日
    00
  • Selenium定位元素操作示例

    让我给你详细讲解一下“Selenium定位元素操作示例”的完整攻略。首先,Selenium是一个自动化测试工具,其中最基本的操作就是定位元素,即通过HTML文档中的标签、属性等信息找到对应的元素,然后对其进行一些操作,例如输入内容、点击、获取元素文本等。下面我将介绍两个示例,以展示如何使用Selenium定位元素。 示例一:通过ID定位元素并进行点击操作 在…

    css 2023年6月9日
    00
  • CSS运用阿里巴巴矢量库快速在对应位置加上好看的图标效果(实例代码)

    CSS运用阿里巴巴矢量库快速在对应位置加上好看的图标效果是一种常用的前端开发技巧。这里我们将介绍具体的操作步骤,包括: 引入阿里巴巴矢量库 选择合适的图标 添加样式到html元素上 下面展示两条具体的示例操作: 示例1:添加箭头图标 1. 引入阿里巴巴矢量库 在head标签中添加如下代码: <link rel="stylesheet&quot…

    css 2023年6月9日
    00
  • html+css3太阳系行星运转动画效果的实现代码

    接下来我将为你介绍如何实现 HTML 和 CSS3 制作太阳系行星运转动画效果,并提供两条示例说明。 HTML + CSS3 制作太阳系行星运转动画效果——完整攻略 第一步:HTML 结构 我们首先来创建 HTML 结构,包含太阳、行星和轨道等元素。 <div class="sun"></div> <div …

    css 2023年6月9日
    00
  • div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox

    要实现类似marquee的无缝滚动效果,可以使用div、CSS和JavaScript结合的方式。具体实现步骤如下: HTML结构 先创建一个包含滚动内容的div,再在div内部创建两个包裹滚动内容的div,其中一个用于显示内容,一个用于隐藏内容,两个div的宽度相等,高度与滚动内容相同。如下所示: <div class="scroll-wra…

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