web页面设计——圣杯布局/目录定位/相册换页

本文介绍了圣杯/双飞翼布局的实现方法,包括CSS样式编写和左右侧栏宽度设定,以及导航定位的JavaScript逻辑,如使用`scrollIntoView`滚动到指定内容。此外,还讲解了相册换页效果的实现,通过定时器和函数返回实现多组图像的动态切换。
摘要由CSDN通过智能技术生成

目录

圣杯/双飞翼布局

导航定位的逻辑

相册换页逻辑


圣杯/双飞翼布局

1)了解圣杯/双飞翼布局:固定两侧,中间自适应

要点编写css样式时:左右的width要确定大小(用px),中间container的width则用100%

完整的css代码:

.header{
	background-color: #F1F1F1;
	text-align: center;
	padding: 20px;
}

.body{
	display: flex;
	flex-direction: row-reverse;
}
.left,.right {

	width: 200px;
	height: 100%;
}

.left{
	background-color: #121212;
}

.right{
	background-color: #989898;
}
.container{
	width: 100%;
	height: 100%;

}

.footer{
	background-color: #F1F1F1;
	text-align: center;
	padding: 20px;
}

测试的html:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="path to your css file">
</head>

<body>
    <div class="header">Header</div>
    <div class="body">
        <div class="left">Left sidebar</div>
        <div class="container">container</div>
        <div class="right">Right sidebar</div>
    </div>
    <div class="footer">Footer</div>
</body>

</html>

界面:因为没有给body\container\left\right设置min-height 所以他们的height只是随内容而填充,所以这里像是“压缩了”

                                                                        图1

内容安排如上图1所示

导航定位的逻辑

参考 W3School TIY Editor

经过测试可以用按钮点击+scrollIntoView完成滚轴滑动

button做显示、交互的左右

script编写函数逻辑

1)导航上的内容

        <div class="left">Left sidebar
            <p>文章导航目录</p>
            <button onclick="myFunction('abstract')">导言</p>
                <button onclick="myFunction('title1')">标题1</button>
                <button onclick="myFunction('title2')">标题2</button>
        </div>

2)文章的内容

        <div class="container">container
            <p id="abstract">文章主体</p>
            <p id="title1">标题1</p>
            <div class="ob">占据空间</div>
            <p id="title2">标题2</p>
            <p></p>
        </div>

3)函数逻辑

<script>
function myFunction(selectionid) {
    const element = document.getElementById(selectionid);
    element.scrollIntoView({ behavior: 'smooth' });
}
</script>

4)如何让“目录永相随”

fixed:fixed的弊端:当你使用 position: fixed; 定位一个元素时,它会脱离文档流,并且不会受到父元素或其他元素的影响。

相册换页逻辑


    <img id="img元素的id" src="最初展示的图像的地址" alt="相册图片">

    <script>
        // 图片路径数组
        var images = ["图像1本地路径", "图像2本地路径"];
        var currentIndex = 0; // 当前显示的图片索引

        function showNextImage() {
            currentIndex = (currentIndex + 1) % images.length; // 循环显示图片
            document.getElementById("对应的img元素的id").src = images[currentIndex]; // 切换图片
        }

        // 每隔5秒切换一次图片
        setInterval(showNextImage, 5000);
    </script>

多组图像变换

因为setInterval接受只函数名,不接受接受参数,所以我们可以通过以下形式构造多个不同img相册

function ImageShow(images,id,currentIndex)
        {
            // 返回一个设置好images和对应img的无参函数
            return function() {
            currentIndex = (currentIndex + 1) % images.length; // 循环显示图片
            document.getElementById(id).src = images[currentIndex]; // 切换图片
        }
    }

调用方法就是

<script>
        // 图片路径数组
        var images = ["图片1的本地路径", "图片2的本地路径"];

        var images2 = ["图片3的本地路径", "图片4的本地路径"];
        

        function ImageShow(images,id,currentIndex)
        {

            return function() {
            currentIndex = (currentIndex + 1) % images.length; // 循环显示图片
            document.getElementById(id).src = images[currentIndex]; // 切换图片
        }
    }
        var showNextImage = ImageShow(images,"img1的id",0);
        var show2 = ImageShow(images2,"img2的id",0);
        // 每隔5秒切换一次图片
        setInterval(showNextImage, 5000);
        setInterval(show2, 5000);
    </script>

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值