• 第二十一章 轮播图


    轮播图

        分析:

        复制元素(可以不用js来实现)

            => 原因:就是当最后一张走完的时候会出现留白的现象

            => 为了增加体验效果 , 我们会把第一张复制一份放到最后面

            => 把最后一张复制一份放到最前面

        设置焦点

            => 我们的焦点需要比我们的图片少2个

        自动轮播

            => 就是需要让图片动起来

            => 需要使用到定时器

            => 需要使用反复性定时器

            => 第一次运动 : -1 * bannerBox.clientWidth

            => 第二次运动 : -2 * bannerBox.clientWidth

            => 第三次运动 : -3 * bannerBox.clientWidth

        运动结束

            => 我们也写成函数的形式

            => 这个函数不是上来就调用的

            => 当到了最后一张的时候我们要让图片回到对应位置

            => 焦点也需要跟着移动

            => 图片的索引:  0  1  2  3  4  5  6

            => 焦点的索引:     0  1  2  3  4

        移入移出

            => 移入: 就是停止自动轮 , 需要关闭定时器

            => 移出: 自动轮播开始工作 , 再次调用我们的自动轮播的函数

        点击切换

            => 就是在点击 左右按钮的时候能切换图片

            => 我们在点击焦点的时候也能到达指定的图片

            => 实现方式

                -> 第一种: 单独获取 , 单独设置

                -> 第二种: 事件委托的方式

    1. <style>
    2. * {
    3. margin: 0;
    4. padding: 0;
    5. }
    6. ul,
    7. ol,
    8. li {
    9. list-style: none;
    10. }
    11. .banner {
    12. width: 600px;
    13. height: 400px;
    14. border: 3px solid #333;
    15. margin: 50px auto;
    16. position: relative;
    17. overflow: hidden;
    18. }
    19. .banner>ul {
    20. width: 500%;
    21. height: 100%;
    22. position: absolute;
    23. left: 0;
    24. top: 0;
    25. display: flex;
    26. }
    27. .banner>ul>li {
    28. flex: 1;
    29. font-size: 100px;
    30. display: flex;
    31. justify-content: center;
    32. align-items: center;
    33. color: #fff;
    34. }
    35. .banner>ol {
    36. width: 200px;
    37. height: 30px;
    38. background-color: rgba(0, 0, 0, .5);
    39. border-radius: 15px;
    40. position: absolute;
    41. left: 50%;
    42. bottom: 30px;
    43. transform: translateX(-50%);
    44. display: flex;
    45. justify-content: space-evenly;
    46. align-items: center;
    47. }
    48. .banner>ol>li {
    49. width: 20px;
    50. height: 20px;
    51. border-radius: 50%;
    52. background-color: #fff;
    53. cursor: pointer;
    54. }
    55. .banner>ol>li.active {
    56. background-color: red;
    57. }
    58. .banner:hover>div {
    59. display: flex;
    60. }
    61. .banner>div {
    62. width: 30px;
    63. height: 40px;
    64. background-color: rgba(0, 0, 0, .3);
    65. position: absolute;
    66. top: 50%;
    67. transform: translateY(-50%);
    68. display: flex;
    69. justify-content: center;
    70. align-items: center;
    71. font-size: 30px;
    72. color: #fff;
    73. cursor: pointer;
    74. display: none;
    75. }
    76. .banner>div:hover {
    77. background-color: rgba(0, 0, 0, .5);
    78. }
    79. .banner>div.left {
    80. left: 0;
    81. border-radius: 0 20px 20px 0;
    82. }
    83. .banner>div.right {
    84. right: 0;
    85. border-radius: 20px 0 0 20px;
    86. }
    87. style>
    88. head>
    89. <div class="banner">
    90. <ul class="imgBox">
    91. <li style="background-color: pink;">1li>
    92. <li style="background-color: skyblue;">2li>
    93. <li style="background-color: orange;">3li>
    94. <li style="background-color: purple;">4li>
    95. <li style="background-color: yellow;">5li>
    96. ul>
    97. <ol class="pointBox">
    98. ol>
    99. <div class="left"><div>
    100. <div class="right">>div>
    101. div>

    其中调用的运动函数在上一节 

  • 相关阅读:
    码蹄集 - MT2165 - 小码哥的抽卡之旅1
    星戈瑞Sulfo-CY5 maleimide应用于流式细胞术
    【工具】转码silk格式为mp3
    react+antd+Table实现表格初始化勾选某条数据,分页切换保留上一页勾选的数据
    c++继承
    唐岩重新出山任挚文CEO:仍难挡陌陌颓势 营收持续下滑
    【网站架构】功能做完还要加班?性能、安全、可用性、扩展、弹缩
    有什么软件能实现erp、crm、oa、财务系统一体化?
    tomcat必要的配置
    【无标题】
  • 原文地址:https://blog.csdn.net/Girasoles/article/details/128114744