iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何使用html5+css3来实现slider切换效果
  • 189
分享到

如何使用html5+css3来实现slider切换效果

2024-04-02 19:04:59 189人浏览 泡泡鱼
摘要

这篇文章主要介绍“如何使用HTML5+css3来实现slider切换效果”,在日常操作中,相信很多人在如何使用html5+CSS3来实现slider切换效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用

这篇文章主要介绍“如何使用HTML5+css3来实现slider切换效果”,在日常操作中,相信很多人在如何使用html5+CSS3来实现slider切换效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用html5+css3来实现slider切换效果”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!




一、效果图
如何使用html5+css3来实现slider切换效果 
跟过去用js来实现的效果看上去差不了太多,但是整体感觉很优雅。好吧,css3的强大之处在于,我写了很少的代码,就实现了比较复杂的效果。但是这个示例也有不太完美的地方,就是在两张图片切换的时候,如果中间间隔有图片,那么在css3动画的执行过程中还是会看到,比较不给力。不过想想,这可是纯css3来实现的效果啊,用js来实现的复杂的html结构变动在这里可看不到,所以上面的效果很难简单用css3来实现。
二、html结构 

代码如下:


<div id="bd">
<input checked type="radio" name="slider" id="slider1">
<input type="radio" name="slider" id="slider2">
<input type="radio" name="slider" id="slider3">
<input type="radio" name="slider" id="slider4">
<input type="radio" name="slider" id="slider5">
<div id="sliders">
<div id="overflow">
<div class="inner">
<article>
<div class="info">
<h2>Title1</h2>
<a href="#">Description1</a>
</div>
<img src="img/pic1.png"/>
</article>
<article>
<div class="info">
<h2>Title2</h2>
<a href="#">Description2</a>
</div>
<img src="img/pic2.png"/>
</article>
<article>
<div class="info">
<h2>Title3</h2>
<a href="#">Description3</a>
</div>
<img src="img/pic3.png"/>
</article>
<article>
<div class="info">
<h2>Title4</h2>
<a href="#">Description4</a>
</div>
<img src="img/pic4.png"/>
</article>
<article>
<div class="info">
<h2>Title5</h2>
<a href="#">Description5</a>
</div>
<img src="img/pic5.png"/>
</article>
</div>
</div>
</div>
<div id="controls">
<label for="slider1"></label>
<label for="slider2"></label>
<label for="slider3"></label>
<label for="slider4"></label>
<label for="slider5"></label>
</div>
<div id="active">
<label for="slider1"></label>
<label for="slider2"></label>
<label for="slider3"></label>
<label for="slider4"></label>
<label for="slider5"></label>
</div>
</div>


上面的代码是主要的html结构,其中包含了一个input radio组,你可以在这里它看做一个中枢,本实例中它起到了很关键的作用(这也是为什么我在示例中不愿将它隐藏起来,真正的英雄不应该是幕后的英雄)。
下面的sliders中包含了需要展现的images,这里好像是一个滑动门的效果,通过控制inner的margin-left来展现不同的image。

controls是图片左右两边的切换箭头,先不要着急为什么要设计5个,看上去只要两个就可以了啊,提醒下,我们本例中绝不使用js来实现切换。
最后的active是图片下面的点击小按钮,可以通过点击直接选择要浏览的图片,你也可以丰富里面的结构来设计一个缩略图的效果。
三、css样式表

代码如下:


@charset utf-8;

body{background: #DDD;overflow-x: hidden;}
#bd{width: 960px;margin: 100px auto;max-width: 960px;}

#sliders{
border-radius: 5px;
box-shadow: 1px 1px 4px #666;
padding: 1%;
background: #fff;
}
#overflow{
width: 100%;
overflow: hidden;
}
#sliders .inner{
width: 500%;
transiton: all 1s linear;
-WEBkit-transition: all 1s linear;
}
#sliders article{
float: left;
width: 20%;
}
#sliders article .info{
position: absolute;
opacity: 0;
padding: 30px;
color: #666;
font-family: Arial;
transition: opacity 0.1s ease-out;
-webkit-transfORM: translateZ(0);
-webkit-transition: opacity 0.1s ease-out;
}
#sliders article .info h2{
font-size: 22px;
font-weight: bold;
margin: 0 0 5px;
}
#sliders article .info a{
color: #666;
text-decoration: none;
}

#controls{
height: 50px;
width: 100%;
margin-top: -25%;
}
#controls label{
display: none;
width: 50px;
height: 50px;
opacity: 0.3;
cursor: pointer;
}
#controls label:hover{
opacity: 1;
}

#active{
width: 100%;
margin-top: 23%;
text-align: center;
}
#active label{
display: inline-block;
width: 10px;
height: 10px;
border-radius: 5px;
background: #bbb;
border-color: #777;
}
#active label:hover{
background: #ccc;
}

#slider1:checked ~ #active label:nth-child(1),
#slider2:checked ~ #active label:nth-child(2),
#slider3:checked ~ #active label:nth-child(3),
#slider4:checked ~ #active label:nth-child(4),
#slider5:checked ~ #active label:nth-child(5){
background: #333;
}
#slider1:checked ~ #controls label:nth-child(5),
#slider2:checked ~ #controls label:nth-child(1),
#slider3:checked ~ #controls label:nth-child(2),
#slider4:checked ~ #controls label:nth-child(3),
#slider5:checked ~ #controls label:nth-child(4){
display: block;
float: left;
background: url(../img/prev.png) no-repeat;
margin-left: -70px;
}
#slider1:checked ~ #controls label:nth-child(2),
#slider2:checked ~ #controls label:nth-child(3),
#slider3:checked ~ #controls label:nth-child(4),
#slider4:checked ~ #controls label:nth-child(5),
#slider5:checked ~ #controls label:nth-child(1){
display: block;
float: right;
background: url(../img/next.png) no-repeat;
margin-right: -70px;
}
#slider1:checked ~ #sliders article:nth-child(1) .info,
#slider2:checked ~ #sliders article:nth-child(2) .info,
#slider3:checked ~ #sliders article:nth-child(3) .info,
#slider4:checked ~ #sliders article:nth-child(4) .info,
#slider5:checked ~ #sliders article:nth-child(5) .info{
opacity: 1;
transition: all 0.6s ease-out 1s;
-webkit-transition: all 0.6s ease-out 1s;
}
#slider1:checked ~ #sliders .inner{
margin-left: 0;
}
#slider2:checked ~ #sliders .inner{
margin-left: -100%;
}
#slider3:checked ~ #sliders .inner{
margin-left: -200%;
}
#slider4:checked ~ #sliders .inner{
margin-left: -300%;
}
#slider5:checked ~ #sliders .inner{
margin-left: -400%;
}


好吧,我承认上面的css代码真的比较多,比较复杂,可是它真的实现了非常炫的效果,而且我写完的时候也被css3的巨大魔力折服了。。。
这里面前半部分的代码主要用来设计slider的结构,包括一些圆角、阴影方面的美化设计。后半部分主要是一些动画效果,来实现一些切换图片或者是控制按钮切换时候的动态效果。但是,最主要的是最下面的css3选择器的使用,通过它真正实现了图片切换的功能。我真的认为选择器在示例里起到了非常非常重要的作用,因为这是我过去学习css3所忽略的知识。一直觉得css3强大的是圆角、阴影,是变形、动画,但是这段代码真的告诉我们选择器在css3中有多么重要。在一些复杂的逻辑中,使用这些css3选择器可以实现令人无法想象的效果。
四、slider实现的原理
第一次看完上面的代码的时候,你肯定跟我当初一样,不相信这样的代码可以实现slider的效果。
好吧,我来分析下实现的原理吧。
我在上文中说过,最上面的那个radio组很重要,是slider实现的枢纽。没错,它真的是。
要实现一个slider,无非要实现两种切换,就是点击控制按钮的时候,图片切换;同时,图片切换的时候,保证所有的控制按钮正确显示。
本例中我们使用label来作为控制按钮,article包含图片,而inner作为图片的容器
简单的想,label和article怎么也建立不起来联系,label的状态信息很难反映到article的选择上去。除非有个东西可以把label的切换状态记录下来,然后通过某种手段来选择相应次序的图片来显示。
好吧,现在,你明白了为什么那个radio组是实现slider的关键了吧。对,它的出现就是为了记录label的点击状态。
我们通过label的for属性将它与对应的radio对应起来,当label点击的时候,相应的radio就变为了checked的状态。然后通过强大的css3选择器将inner向左移动,让对应的图片显示出来。当然,对应的左右选择按钮也是通过选择器来显示的。同样的道理,左右按钮点击时,下方5个选择按钮的状态也是这样实现的。
上面的实现原理比较简单吧,其实只要可以记录下控制按钮的点击状态,通过选择器就可以实现slider的效果。
不仅仅只有radio组可以,a:hover也可以按照这样的思路来实现a在hover的时候实现图片切换。当然还有其他多种实现方式,只要你明白实现的原理。
五、总结
其实css3真的很好玩,很多效果,在css3中,只有想不到,没有做不到。有时候真的发现,写css3是需要一点点小聪明的,有时候一些精妙的实现方式真的让人赞不绝口。
好吧,作为一个小实践,这个示例给我的收获还是很多的,尤其是强大的选择器,让我汗颜了,过去太忽视了。。。
不连续图片切换的问题,我还要考虑考虑,看来必须要使用一点js来辅助了。

到此,关于“如何使用html5+css3来实现slider切换效果”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何使用html5+css3来实现slider切换效果

本文链接: https://www.lsjlt.com/news/77294.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用html5+css3来实现slider切换效果
    这篇文章主要介绍“如何使用html5+css3来实现slider切换效果”,在日常操作中,相信很多人在如何使用html5+css3来实现slider切换效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • CSS3如何实现图片模糊切换效果
    这篇文章将为大家详细讲解有关CSS3如何实现图片模糊切换效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  <!DOCTYPE html> &nb...
    99+
    2024-04-02
  • HTML5+CSS3怎么实现灵动的动画TAB切换效果
    这篇文章将为大家详细讲解有关HTML5+CSS3怎么实现灵动的动画TAB切换效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。设计师给了一个 tab 切换的效果图。虽然是一个很小的功能,但是前端工程师在实...
    99+
    2023-06-08
  • js+CSS3如何实现卡牌旋转切换效果
    这篇文章主要为大家展示了“js+CSS3如何实现卡牌旋转切换效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js+CSS3如何实现卡牌旋转切换效果”这篇文章吧...
    99+
    2024-04-02
  • 使用CSS3怎么实现一个页面切换效果
    今天就跟大家聊聊有关使用CSS3怎么实现一个页面切换效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。<html><head>  &nbs...
    99+
    2023-06-08
  • 怎么利用HTML5+CSS3实现3D转换效果
    这篇文章主要为大家展示了“怎么利用HTML5+CSS3实现3D转换效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么利用HTML5+CSS3实现3D转换效果...
    99+
    2024-04-02
  • 如何使用CSS实现Tab页切换效果
    这篇文章主要介绍如何使用CSS实现Tab页切换效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!三种写法:利用 :hover 选择器缺点:只有鼠标在元素上面的时候才有效果,无法实现选中和默认显示某一个的效果利用 a标...
    99+
    2023-06-08
  • 如何使用CSS3来实现滚动视差效果
    本篇内容主要讲解“如何使用CSS3来实现滚动视差效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用CSS3来实现滚动视差效果”吧!在web设计中,最常见...
    99+
    2024-04-02
  • 如何使用JavaScript/jQuery实现切换页面效果
    小编给大家分享一下如何使用JavaScript/jQuery实现切换页面效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下<!DOCTYPE html><html lang...
    99+
    2023-06-29
  • js如何实现tab切换效果
    这篇文章主要介绍了js如何实现tab切换效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果如下:代码如下:<!DOCTYPE&nb...
    99+
    2024-04-02
  • 基于HTML5+CSS3如何实现时钟效果
    这篇文章给大家分享的是有关基于HTML5+CSS3如何实现时钟效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。目的:利用html5,css实现钟摆效果知识点: 1) 利用pos...
    99+
    2024-04-02
  • 如何使用CSS实现outline切换的动画效果
    这篇文章主要介绍“如何使用CSS实现outline切换的动画效果”,在日常操作中,相信很多人在如何使用CSS实现outline切换的动画效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • 如何使用css3来实现数字换行
    这篇文章主要介绍了如何使用css3来实现数字换行,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在css中,可以...
    99+
    2024-04-02
  • HTML5+css3如何实现3D旋转木马效果
    这篇文章主要介绍HTML5+css3如何实现3D旋转木马效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、perspectiveperspective属性包括两个属性:none和...
    99+
    2024-04-02
  • 如何使用CSS3实现动画效果
    这篇文章主要为大家展示了“如何使用CSS3实现动画效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用CSS3实现动画效果”这篇文章吧。浏览器支持Inte...
    99+
    2024-04-02
  • 如何使用css3实现转换过渡和动画效果
    这篇文章主要介绍了如何使用css3实现转换过渡和动画效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为什么要用css动画替换js动画  导致JavaScript效...
    99+
    2023-06-08
  • 如何使用CSS3实现折角效果
    这篇文章主要介绍如何使用CSS3实现折角效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先来看看静态的效果图实例代码<!DOCTYPE html> <h...
    99+
    2024-04-02
  • 如何使用css3实现弹幕效果
    这篇文章主要介绍如何使用css3实现弹幕效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如何通过css3实现弹幕首先来看如何通过css的方法实现一个最简单的弹幕:首先在html中定...
    99+
    2024-04-02
  • Android如何使用ViewPager2实现页面滑动切换效果
    目录1.引言2.实现页面滑动切换2.1 引入ViewPager2库2.2 使用ViewPager22.3 构建Fragment2.4 继承FragmentStateAdapter2....
    99+
    2024-04-02
  • winform窗体来回切换效果怎么实现
    要实现winform窗体的来回切换效果,可以使用以下步骤:1. 创建两个窗体,例如Form1和Form2。2. 在Form1中添加一...
    99+
    2023-09-13
    winform
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作