javascript - 在 iFrame 中将 FIXED 定位到 Mainframe
问题描述
我有一个“按钮框”,位于<iFrame>
. 此按钮框应基于主框架的位置。我目前正在使用执行此操作的 Javascript 方法。但是,这意味着滚动时会有相当长的延迟。你有解决这个问题的办法吗?谢谢!
如果进入页面
滚动后
.menue{
background-color: green;
height : 20%;
}
.sidemenue{
background-color: red;
width : 20%;
height : 80%;
float: left;
}
#Source{
background-color: yellow;
width : 79%;
height : 80%;
float: left;
}
<html>
<head>Example</head>
<body>
<div class="menue">
test test test test test test test test test test test
</div>
<div class="sidemenue">
test<br />
2nd test<br />
4rd test<br />
4th test<br />
5th test<br />
6th test<br />
7th test<br />
8th test<br />
9th test<br />
</div>
<iframe id="Source">
// other File
<div>
<input type="button" value="Save" /> //<- This one should be position: fixed based on the view area of the parent
</div>
// other File!
</iframe>
</body>
</html>
解决方案
在这里查看 https://www.awesomescreenshot.com/video/2756448?key=f606d51852b6cc71bda7e5c23cee662c
.group {
display: flex;
flex-wrap: wrap;
}
.mb-50 {
margin-bottom: 50px;
}
.menue {
background-color: green;
height: 150px;
width: 100%;
}
.sidemenue {
background-color: red;
width: 20%;
height: calc(100vh - 150px);
padding: 50px;
}
#Source {
background-color: yellow;
width: 80%;
height: calc(100vh - 150px);
padding: 50px;
overflow: auto;
}
.btnsave {
position: fixed;
bottom: 10%;
right: 40%;
transform: translateX(-40%);
}
.btnsave input[type="button"] {
cursor: pointer;
outline: none;
background: red;
padding: 13px 30px;
border: 0;
border-radius: 35px;
color: #fff;
font-size: 14px;
letter-spacing: 0.05em;
transition: 0.5s;
}
.btnsave input[type="button"]:hover {
box-shadow: 0 0 10px 0 #000;
}
<!doctype html>
<html dir="ltr" lang="en-US">
<head>
<title>Demo</title>
<link type="image/x-icon" rel="shortcut icon" href="assets/image/favicon.png" />
<!-- Required meta tags -->
<meta charset="UTF-8" />
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="">
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="assets/css/democss.css" />
</head>
<body>
<!-- Queston-1 -->
<div class="group">
<div class="menue">
test test test test test test test test test test test
</div>
<div class="sidemenue">
test<br /> 2nd test<br /> 4rd test<br /> 4th test<br /> 5th test<br /> 6th test<br /> 7th test<br /> 8th test<br /> 9th test<br />
</div>
<div id="Source">
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="mb-50">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Earum pariatur odit perferendis optio veritatis! Dolores beatae blanditiis maiores, quia sapiente architecto rem temporibus iure ipsam deserunt magnam ab eos porro!
</div>
<div class="btnsave">
<input type="button" value="Save" />
</div>
</div>
</div>
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="assets/js/jquery-3.5.1.slim.min.js"></script>
<script>
</script>
</body>
</html>
推荐阅读
- java - ORA-28040: 没有匹配的身份验证协议 Oracle
- javascript - 如何连接对象中的变量名
- python - 如何导入python模块一次然后在python脚本中持续使用模块
- .net - .Net Core Dependency Injection - 在子范围内替换依赖项
- c++ - win32 c++ 我想在 STATIC 标签的 TEXT 之后直接插入一个 EDIT 控件
- c++ - 将 CMake 和 vc142 与 boost 一起使用时出现链接错误 LNK1104
- vue.js - 修复 Vue 中的表格宽度,并在文本超出时添加工具提示
- c# - 如何使用 xaml 将内容动态添加到 wpf 应用程序中的富文本框
- python - 从数据框中删除异常值和周围数据
- c# - app.config 中的修改在执行项目时没有反映