当前位置: 首页 > news >正文

音乐网站网页设计链接式友谊

音乐网站网页设计,链接式友谊,创建个人网站怎么做,推进政府网站集约化建设使用 HTML、CSS 和 JavaScript 创建轮播图 在本文中,我们将讨论如何使用 HTML、CSS 和 JavaScript 构建轮播图。我们将演示两种不同的创建滑块的方法,一种是基于opacity的滑块,另一种是基于transform的。 创建 HTML 我们首先从 HTML 代码开…

使用 HTML、CSS 和 JavaScript 创建轮播图

在本文中,我们将讨论如何使用 HTMLCSSJavaScript 构建轮播图。我们将演示两种不同的创建滑块的方法,一种是基于opacity的滑块,另一种是基于transform的。

创建 HTML

我们首先从 HTML 代码开始:

<div class="slider"><div class="slide"><img src="images/1.jpg" alt="demo image" /></div><div class="slide"><img src="images/2.jpg" alt="demo image" /></div>. . .<a class="prev" onclick="prevSlide()">&lt;</a><a class="next" onclick="nextSlide()">&gt;</a>
</div>

.slider元素充当整个图像滑块的容器。
单独的幻灯片.slide元素与图像一起封装在容器中。
滑块导航由.prev.next两个按钮元素控制。

我们还为导航设置了onclick事件监听器,当点击它们时,相应的 JavaScript 函数将被激活。

添加样式

为了更轻松地设置元素样式,建议删除所有元素的默认内边距和边距,并将其box-sizing属性设置为border-box。这允许根据元素的尺寸border-box而不是content-box来调整元素的大小。

* {padding: 0px;margin: 0px;box-sizing: border-box;
}

然后添加.slider样式。

.slider {width: 500px;height: 300px;margin: auto;overflow: hidden;transform: translateY(50%);
}

以及.slide

.slide {position: absolute;top: 50%;transform: translateY(-50%);
}img {width: 100%;height: auto;
}

最后,我们还将导航按钮放置在.slider容器的左侧和右侧。

.prev,
.next {cursor: pointer;background-color: #333;color: #fff;padding: 10px 20px;position: absolute;top: 50%;transform: translateY(-50%);text-decoration: none;
}.prev {left: 0;
}.next {right: 0;
}

添加 JavaScript 代码

现在,让我们仔细看看.slide样式。

.slide {position: absolute;top: 50%;transform: translateY(-50%);
}

通过使用position: absolute,我们将所有.slide元素放置在一个位置,彼此堆叠。我们可以使用浏览器中的开发人员工具进行验证。

在这里插入图片描述

基于opacity的滑块

现在我们需要做的就是将当前幻灯片的opacity设为100,同时将所有其他幻灯片的opacity设为0。

为了实现幻灯片效果,我们可以编写 JavaScript 代码,以便每当单击导航链接时,“当前幻灯片”都会相应调整。

我们首先将所有幻灯片的opacity设置0。

.slide {position: absolute;top: 50%;transform: translateY(-50%);opacity: 0;transition: opacity 1s ease;
}

然后添加以下 JavaScript 代码。

const slides = document.querySelectorAll(".slide");
let currentSlide = 0;function showSlide(index) {slides.forEach((slide, i) => {if (i === index) {slide.style.opacity = 100;} else {slide.style.opacity = 0;}});
}function nextSlide() {currentSlide = (currentSlide + 1) % slides.length;showSlide(currentSlide);
}function prevSlide() {currentSlide = (currentSlide - 1 + slides.length) % slides.length;showSlide(currentSlide);
}showSlide(currentSlide);

第 1 行选择所有.slide,并将它们分配给变量slides

第 2 行将变量初始化currentSlide为0,它指向图像滑块中的第一张幻灯片。

现在,我们来看看nextSlide()函数。

function nextSlide() {currentSlide = (currentSlide + 1) % slides.length;showSlide(currentSlide);
}

在本例中,slides.length给出了滑块中幻灯片的总数,当执行此函数(通过单击链接.next)时,currentSlide将进行相应调整。

例如,当函数第一次执行时,假设总共有 5 张幻灯片:

currentSlide = (0 + 1) % 5 = 1

但当执行第五次时,currentSlide将重置回0。

currentSlide = (4 + 1) % 5 = 0

prevSlide()函数的工作原理类似。

function prevSlide() {currentSlide = (currentSlide - 1 + slides.length) % slides.length;showSlide(currentSlide);
}

currentSlide是4时,它指向第五张幻灯片:

currentSlide = (4 - 1 + 5) % 5 = 3

currentSlide是0时,它指向第一张幻灯片:

currentSlide = (0 - 1 + 5) % 5 = 4

然后变量currentSlide将作为showSlide()的参数index

function showSlide(index) {slides.forEach((slide, i) => {if (i === index) {slide.style.opacity = 100;} else {slide.style.opacity = 0;}});
}

此函数迭代存储在slides中的所有幻灯片,如果迭代索引 ( i) 与currentSlide索引 ( index) 匹配,则该幻灯片将被设置opacity为100。如果没有,那opacity就是0。

基于transform

我们将其称为图像滑块,但从最终结果中可以看到,没有太多滑动,因为过渡是基于不透明度的。我们如何调整代码,以便当单击导航链接时,图像实际上滑到下一个?

我们必须进行两项更改。首先,.slide 必须水平排列在.slider容器后面,而不是相互堆叠。我们可以将.slider容器视为一个窗口。每次单击链接时,.slide 都会向左或向右移动以显示上一张或下一张图像。

.slider {width: 500px;height: 300px;margin: auto;overflow: hidden;transform: translateY(50%);display: flex;align-items: center;
}.slide {flex: 0 0 100%;transition: transform 1s ease;
}

我们使用弹性布局来实现这种效果。flex: 0 0 100%将每个slide的宽度设置为100%。

接下来,调整showSlide()功能。

function showSlide(index) {slides.forEach((slide, i) => {const slideWidth = slide.clientWidth;slide.style.transform = `translateX(-${index * slideWidth}px)`;});
}

再次假设总共有五张幻灯片,并且每张幻灯片都是500px宽。当索引为3时,index * slideWidth将是1500,并将translateX(-1500px)所有.slide 向左移动1500像素,显示第四个图像。

http://www.hengruixuexiao.com/news/25972.html

相关文章:

  • 网站模板管理系统广告推广公司
  • 坪山附近公司做网站建设多少钱合肥关键词快速排名
  • 励志响亮的建筑公司名sem 优化软件
  • 自适应企业网站源码百度推广登录手机版
  • 旅游网站的设计栏目南昌seo搜索优化
  • wordpress 改 名字广告优化师发展前景
  • wordpress 文章别名关键词排名优化公司成都
  • wordpress 商城插件深圳宝安seo外包
  • 盐城网站推广哪家好现在最好的免费的建站平台
  • 网站建设最好的书籍是深圳网络推广推荐
  • win2012做网站seo网络营销是什么意思
  • 网站的公共头部怎么做软文范例大全1000字
  • 免费做标签格式网站搜索引擎优化排名技巧
  • 做网站应该拿多少提成宿州百度seo排名软件
  • 培训教育类网站模板网络营销制度课完整版
  • 网站后台登陆界面模板百度下载app下载安装到手机
  • 建设网站公司宝鸡太原关键词优化公司
  • 专业旅游网站制作培训机构排名全国十大教育机构排名
  • 网站 侧边栏网络优化工作内容
  • 自己做的网站能加人收藏吗北京营销推广网站建设
  • 微博网站模板 css个人建网站需要多少钱
  • 营销型网站建设优化用网站模板建站
  • 网站关键词基础排名怎么做网络营销策划方案怎么做
  • 做网站策划需要什么技能南宁seo平台标准
  • WordPress discuz 仿站关键词调价工具哪个好
  • 做学校网站的目的网络营销与直播电商专业就业前景
  • 如何建设网站制作平台长沙网站seo外包
  • 做网站代理去拉人设计公司取名字大全集
  • 龙口网站开发网络视频营销的案例
  • 做个网站需要什么步骤怎么免费建立网站