超酷的动态滑动卡片

[复制链接]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

这段HTML和CSS代码实现了一个具有动态滑动效果的卡片式图片展示页面,包含三个不同的图片和对应的内容描述。


演示效果

图片

HTML&CSS


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>站长论坛|3BBS.CN</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html,
        body {
            height: 100vh;
            font-family: 'Open Sans', sans-serif;
            background-color: #666666;
        }

        body {
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .card {
            position: absolute;
            height: 350px;
            width: 100%;
            max-width: 850px;
            margin: auto;
            background-color: #ffffff;
            border-radius: 25px;
            box-shadow: 10px 0 50px rgba(0, 0, 0, 0.5);
        }

        .card .inner_part {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0 0 0 30px;
            height: 350px;
            position: absolute;
        }

        #slideImg:checked~.inner_part {
            padding: 0;
            transition: .1s ease-in;
        }

        .inner_part .img {
            height: 260px;
            width: 260px;
            overflow: hidden;
            flex-shrink: 0;
            border-radius: 20px;
            box-shadow: 0 10px 50px rgba(0, 0, 0, 0.2);
        }

        #slideImg:checked~.inner_part .img {
            height: 350px;
            width: 850px;
            z-index: 99;
            transition: .3s .2s ease-in;
        }

        .img img {
            height: 100%;
            width: 100%;
            cursor: pointer;
            opacity: 0;
            transition: .6s;
        }

        #slide_1:checked~.inner_part .img_1,
        #slide_2:checked~.inner_part .img_2,
        #slide_3:checked~.inner_part .img_3 {
            opacity: 1;
            transition-delay: .2s;
        }

        .content {
            padding: 0 20px 0 35px;
            width: 530px;
            margin-left: 50px;
            opacity: 0;
            transition: .6s;
        }

        #slideImg:checked~.inner_part .content {
            display: none;
        }

        #slide_1:checked~.inner_part .content_1,
        #slide_2:checked~.inner_part .content_2,
        #slide_3:checked~.inner_part .content_3 {
            opacity: 1;
            margin-left: 0;
            z-index: 100;
            transition-delay: .3s;
        }

        .content .title {
            font-size: 30px;
            font-weight: 700;
            color: #0d0925;
            margin: 0 0 20px 0;
        }

        .content .text {
            font-size: 19px;
            color: #4e4a67;
            margin: 0 auto 30px auto;
            line-height: 1.5em;
            text-align: justify;
        }

        .content button {
            padding: 15px 20px;
            border: none;
            font-size: 16px;
            color: #fff0e6;
            font-weight: 600;
            letter-spacing: 1px;
            border-radius: 50px;
            cursor: pointer;
            outline: none;
            background: #000000;
            float: right;
        }

        .content button:hover {
            background: #cecece;
            color: #000000;
        }

        .slider {
            position: absolute;
            bottom: 25px;
            left: 55%;
            transform: translateX(-50%);
            z-index: 1;
        }

        #slideImg:checked~.slider {
            display: none;
        }

        .slider .slide {
            position: relative;
            height: 10px;
            width: 50px;
            background: #d9d9d9;
            border-radius: 5px;
            display: inline-flex;
            margin: 0 3px;
            cursor: pointer;
        }


        .slider .slide:before {
            position: absolute;
            content: '';
            top: 0;
            left: 0;
            height: 100%;
            width: -100%;
            background: #000000;
            ;
            border-radius: 10px;
            transform: scaleX(0);
            transition: transform .6s;
            transform-origin: left;
        }

        #slide_1:checked~.slider .slide_1:before,
        #slide_2:checked~.slider .slide_2:before,
        #slide_3:checked~.slider .slide_3:before {
            transform: scaleX(1);
            width: 100%;
        }

        input {
            display: none;
        }
    </style>
</head>

<body>
    <div class="card">
        <input type="radio" name="select" id="slide_1" checked>
        <input type="radio" name="select" id="slide_2">
        <input type="radio" name="select" id="slide_3">
        <input type="checkbox" id="slideImg">

        <div class="slider">
            <label for="slide_1" class="slide slide_1"></label>
            <label for="slide_2" class="slide slide_2"></label>
            <label for="slide_3" class="slide slide_3"></label>
        </div>

        <div class="inner_part">
            <label for="slideImg" class="img">
                <img class="img_1"
                    src="https://jxjy-att.whxunw.com/guotu_att/upload/images/2024082611/E885672B00074ABFBBDF667079BF2A85.jpg">
            </label>
            <div class="content content_1">
                <div class="title">湖光山色映夕阳</div>
                <div class="text">
                    夕阳西下,金色余晖洒在宁静的湖面上,倒映着远处的山峰,岸边的岩石与绿树相映成趣,构成一幅和谐美丽的自然画卷。
                </div>
                <button>Read More</button>
            </div>
        </div>

        <div class="inner_part">
            <label for="slideImg" class="img">
                <img class="img_2"
                    src="https://i2.hdslb.com/bfs/archive/7e5f144ce2730cee4a059865b3c7d2d27e2e35ce.jpg">
            </label>
            <div class="content content_2">
                <div class="title">绿野田园风光秀</div>
                <div class="text">
                    阳光明媚的乡村景色,绿意盎然的田野与蜿蜒的小路交错,点缀其间的小屋与远处的山峦构成一幅宁静和谐的田园画卷。
                </div>
                <button>Read More</button>
            </div>
        </div>

        <div class="inner_part">
            <label for="slideImg" class="img">
                <img class="img_3"
                    src="https://cos3.solepic.com/20231012/b_652261202310120839081636.jpg">
            </label>
            <div class="content content_3">
                <div class="title">晨晖雪岭映林间</div>
                <div class="text">清晨的光线洒在雪山之巅,山体被染上一抹粉红。山脚下,色彩斑斓的森林与远处的雪峰相映成趣,展现出大自然的壮丽与和谐。
                </div>
                <button>Read More</button>
            </div>
        </div>
    </div>
</body>

</html>

HTML 结构

  • radio:定义图片切换的控制按钮,通过name属性实现单选效果。
  • checkbox:定义图片放大切换的控制按钮。
  • slider:定义滑动按钮的容器,包含三个滑动按钮。
  • label:定义滑动按钮,通过for属性绑定对应的input>。
  • inner_part:定义每个图片和内容的容器。
  • img:定义图片,通过src属性加载图片资源。
  • content:定义内容区域,包含标题和描述文本。
  • button:定义按钮,用于引导用户查看更多内容。

CSS 样式

  • .card:定义卡片的样式,包括绝对定位、高度、宽度、最大宽度、背景颜色、圆角和阴影。
  • .inner_part:定义卡片内部内容的样式,包括弹性布局、对齐方式、内边距和高度。
  • #slideImg:checked~.inner_part:定义当图片放大切换按钮被选中时,内部内容的样式,包括内边距和过渡效果。
  • .img:定义图片容器的样式,包括高度、宽度、溢出隐藏、弹性收缩、圆角和阴影。
  • #slideImg:checked~.inner_part .img:定义当图片放大切换按钮被选中时,图片容器的样式,包括高度、宽度、层级和过渡效果。
  • .img img:定义图片的样式,包括高度、宽度、鼠标指针和透明度。
  • #slide_1:checked~.inner_part .img_1, #slide_2:checked~.inner_part .img_2, #slide_3:checked~.inner_part .img_3:定义当对应的图片切换按钮被选中时,图片的样式,包括透明度和过渡延迟。
  • .content:定义内容区域的样式,包括内边距、宽度、左边距、透明度和过渡效果。
  • #slideImg:checked~.inner_part .content:定义当图片放大切换按钮被选中时,内容区域的样式,包括隐藏显示。
  • #slide_1:checked~.inner_part .content_1, #slide_2:checked~.inner_part .content_2, #slide_3:checked~.inner_part .content_3:定义当对应的图片切换按钮被选中时,内容区域的样式,包括透明度、左边距、层级和过渡延迟。
  • .content .title:定义内容区域标题的样式,包括字体大小、加粗、颜色和外边距。
  • .content .text:定义内容区域文本的样式,包括字体大小、颜色、外边距、行高和对齐方式。
  • .content button:定义内容区域按钮的样式,包括内边距、边框、字体大小、颜色、字体加粗、字母间距、圆角、鼠标指针、轮廓和背景颜色。
  • .content button:hover:定义当鼠标悬停在按钮上时的样式,包括背景颜色和文字颜色的变化。
  • .slider:定义滑动按钮容器的样式,包括绝对定位、底部、左侧、变换、层级。
  • #slideImg:checked~.slider:定义当图片放大切换按钮被选中时,滑动按钮容器的样式,包括隐藏显示。
  • .slider .slide:定义滑动按钮的样式,包括相对定位、高度、宽度、背景颜色、圆角、内联弹性布局、外边距和鼠标指针。
  • .slider .slide:before:定义滑动按钮伪元素的样式,包括绝对定位、内容、顶部、左侧、高度、宽度、背景颜色、圆角、变换和过渡效果。
  • #slide_1:checked~.slider .slide_1:before, #slide_2:checked~.slider .slide_2:before, #slide_3:checked~.slider .slide_3:before:定义当对应的滑动按钮被选中时,伪元素的样式,包括变换和宽度。
  • input:定义隐藏的输入元素的样式,包括隐藏显示。
小时候,看腻了农村的牛和马,长大后,来到了城里,才知道原来到处都是牛马!
全部回复1 显示全部楼层
这波输出我给满分!💯

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼

关于楼主

管理员
  • 主题

    1053
  • 回答

    430
  • 积分

    2895
虚位以待,此位置招租

商务推广

    此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租
最新热评 加载中...