CSS核心(四十四)综合案例--使用JS+CSS实现轮播的完整原理

[复制链接]
查看: 1082|回复: 31
发表于 2023-2-1 16:46:47 | 显示全部楼层 | 阅读模式
轮播图案例是一个比较综合的案例,通过以上CSS语法的讲解,大家如果一直动手练习,应该是可以排版出来的,只不过是需要时间长短的问题。
先放上效果图,大家可以照着图片自己先做一下,实在不行再看下面的代码。
其中的js代码部分,大家如果不会的话可以不写,只要能够排版出如下样子即可。
想学JS的话可以去JS教程专区学习:https://www.teamczyx.com/forum-131-1.html

CSS核心(四十四)综合案例--使用JS+CSS实现轮播的完整原理

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>js+css轮播图完整实现原理</title>
</head>
<style>
        .box{
                width:590px;
                height:470px;
                /* border:10px solid #0f0;         */
                overflow:hidden;
                position:relative;
        }
        ul,ol{
                list-style:none;
                padding:0;
                margin:0;                
        }
        input{
                width:50px;
                height:50px;
                background:#f00;
                color:#fff;
                text-align:center;
                line-hegiht:50px;
                font-size:30px;
                font-weight:bold;
                position:absolute;        
                top:50%;
                margin-top:-25px;
                border:none;        
        }
        .left{
                left:0;        
        }
        .right{
                right:0;        
        }
        ol{
                position:absolute;
                bottom:20px;
                width:60px;
                left:50%;
                margin-left:-30px;        
        }
        ol li{
                width:10px;
                height:10px;
                border-radius:50%;
                background:#fff;
                float:left;        
                margin:0 5px;
        }
        ol li.on{
                background:#f00;        
        }
</style>
<body>
<div class="box">
        <ul>
            <li><a href="#"><img src="img/banner_1.jpg"></a></li>           
                <li><a href="#"><img src="img/banner_2.jpg"></a></li>           
                <li><a href="#"><img src="img/banner_3.jpg"></a></li>
    </ul>
    <ol>
            <li class="on"></li>
            <li></li>
            <li></li>
    </ol>
    <input type="button" class="left" value="<">
    <input type="button" value=">" class="right">
</div>
</body>
<script src="jquery.js"></script>
<script>
        var i = 0;
        function move(){
                i++;
                if(i>2){
                        i=0;
                }
                $("ul li").eq(i).show().siblings("li").hide();
                $("ol li").eq(i).css("background","#f00").siblings("li").css("background","#fff")
        }
        var timer;
        timer = setInterval(move,2000);
        $(".box").hover(function(){
                clearInterval(timer);        
        },function(){
                timer = setInterval(move,2000);        
        });
        $(".left").click(move);
        function r(){
                i--;
                if(i<0){
                        i=2;
                }
                $("ul li").eq(i).show().siblings("li").hide();
                $("ol li").eq(i).css("background","#f00").siblings("li").css("background","#fff")
        }
        $(".right").click(r);
        $("ol li").click(function(){
                i=$(this).index()
                $("ul li").eq(i).show().siblings("li").hide();
                $("ol li").eq(i).css("background","#f00").siblings("li").css("background","#fff");
                        
        });
</script>
</html>


显示结果为:

CSS核心(四十四)综合案例--使用JS+CSS实现轮播的完整原理

解释一下:
该案例分为两个部分,一个是CSS样式部分,一个是使用JS代码让图片产生动态效果的部分。
先说一下如何使用CSS布局出来一个轮播图样式
1、编写HTML结构,在一个div中包含一个无序列表,用来放img标签,一个有序列表,用来设置下面的小圆点,一个左箭头,一个右箭头,箭头可以使用字体图标,案例中为了节省时间使用了<>。
2、将父盒子的尺寸设置为图片的尺寸,然后使用overflow:hidden;将移除部分隐藏,此时,在div中就只可以看到一张图片。
3、去除无序列表和有序列表的默认样式。
4、定位左右箭头,需要在父盒子div上使用相对定位,然后分别在左右箭头上设置绝对定位,使用偏移将左箭头放左边,右箭头放右边,并添加一些其它样式让它好看一点。
5、编写小白点的样式代码,主要使用border-radius:50%;设置为圆形,其余就是颜色、浮动和和间距之类的设置。
6、最后给有序列表的第一个小白点添加一个背景的样式,方便使用js操作类名的方法来动态改变小白点的样式。


第二部分是JS的编写,为了简单,我们使用了jquery
1、定义一个用来显示隐藏图片的函数。
2、将该函数放到始终里面去循环执行。
3、给左右箭头绑定事件,分别实现点左箭头显示前一张和点右箭头实现下一张的效果。
具体实现方法是js相关内容,这里就不详细说明了,核心逻辑就是循环到货点击到的那个元素显示,其余的隐藏。


易博软件介绍
发表于 2023-2-18 18:26:38 | 显示全部楼层
看你的文章,真的挺受益啊~~~  我以后一定要努力!
发表于 2023-2-25 12:32:30 | 显示全部楼层
学习的道路上永远都没有终点!!!

0

主题

19

帖子

10

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
10
发表于 2023-3-1 15:58:40 | 显示全部楼层
看到这些还真是有点兴奋啊。。我想快点学。。可是不知道哪有得教啊

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-3-7 21:47:21 | 显示全部楼层
fgafe

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-3-13 21:44:28 | 显示全部楼层
好!很好!非常的好!

5

主题

215

帖子

115

积分

营销菜鸟

Rank: 3Rank: 3

积分
115
发表于 2023-3-18 22:35:09 | 显示全部楼层
是观念的原因。考研,考级。过多的看到钱就会掉到钱眼里。看不到会有好的程序。钱可以成就一个人,也可以毁掉一个人

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-3-24 02:23:05 | 显示全部楼层
成功/对我来说,,成功就是一个新的起点,,什么叫成功,我才刚上路咧  引用发哥的话,。  无论什么时候,我们都要想的是一个新的起点,这样我们才不会满足现状,目标也会更清晰  现在的我自信心越来越膨胀,我感觉有种云里雾里的感觉可能得来太容易了,我发现我太狂了,言不由衷。  

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-3-28 04:02:03 | 显示全部楼层
真的这个故事对我来说太重要了,谢谢你朋友,虽然我现在还是学生,但是我明白了基础的重要,我从现在就要开始认真对待这个问题了!

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-1 09:02:09 | 显示全部楼层
俺和你们说哟,我还没毕业出来的,。其实计算机这方面我很菜,我自己都这样认为,但是尽管这样我还是能在苏州这边的IT里面工作,我感情很幸福,有时候幸福降临的时候挡也挡不住,真的我很喜欢现在这样,因为我比老哥幸运的多了,。111
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表