Javascript 如何返回到具有';阅读更多';按钮,无需重新单击';阅读更多信息;。
我有一个淡出的部分和一个“阅读更多”链接/按钮。该部分的其余部分将打开,相当长,并且有到外部站点的链接。是否有任何方法可以在页面仍显示部分的情况下链接并返回到我的页面,因为当我返回页面刷新且用户必须滚动时,请再次打开“阅读更多”滚动以查找页面上以前不好的位置。如果用户可以返回到页面中的同一位置,并完全显示该部分,这将非常好,至少在他们完成文章或会话之前是这样。有什么想法吗 代码如下:Javascript 如何返回到具有';阅读更多';按钮,无需重新单击';阅读更多信息;。,javascript,html,css,Javascript,Html,Css,我有一个淡出的部分和一个“阅读更多”链接/按钮。该部分的其余部分将打开,相当长,并且有到外部站点的链接。是否有任何方法可以在页面仍显示部分的情况下链接并返回到我的页面,因为当我返回页面刷新且用户必须滚动时,请再次打开“阅读更多”滚动以查找页面上以前不好的位置。如果用户可以返回到页面中的同一位置,并完全显示该部分,这将非常好,至少在他们完成文章或会话之前是这样。有什么想法吗 代码如下: <html> <head> <style>
<html>
<head>
<style>
#fade-wrap {
position: relative;
height: 10rem;
margin-bottom: 3rem;
overflow: hidden;
}
#fade-out {
position: absolute;
bottom: 0;
height: 5rem;
width: 100%;
}
</style>
</head>
<body>
<header>
</header>
<section>
<div>
<p>
Some text ...
</p>
</div>
<div id="fade-wrap">
<p>
Some text ...
</p>
<p>
Some more text ...
</p>
<div id="fade-out"></div>
</div>
<p>
<a id="read-more"
href="javascript:seeMore()">Read More ≫</a>
</p>
</section>
<footer>
</footer>
<script>
function seeMore()
{
document.getElementById("fade-wrap").style.height = "auto";
document.getElementById("fade-out").style.display = "none";
document.getElementById("read-more").style.display = "none";
}
</script>
</body>
</html>
#褪色包装{
位置:相对位置;
高度:10雷姆;
边缘底部:3rem;
溢出:隐藏;
}
#淡出{
位置:绝对位置;
底部:0;
身高:5雷姆;
宽度:100%;
}
一些文字。。。
一些文字。。。
更多的文字。。。
函数seeMore()
{
document.getElementById(“淡入淡出包装”).style.height=“自动”;
document.getElementById(“淡出”).style.display=“无”;
document.getElementById(“阅读更多”).style.display=“无”;
}
您必须使用url上的#锚来处理当前页面状态
<html>
<head>
<style>
#fade-wrap {
position: relative;
height: 10rem;
margin-bottom: 3rem;
overflow: hidden;
}
#fade-out {
position: absolute;
bottom: 0;
height: 5rem;
width: 100%;
}
</style>
</head>
<body>
<header>
</header>
<section>
<div>
<p>
Some text ...
</p>
</div>
<div id="fade-wrap">
<p>
Some text ...
</p>
<p>
Some more text ...
</p>
<div id="fade-out"></div>
</div>
<p>
<a id="read-more"
href="javascript:seeMore()">Read More ≫</a>
</p>
</section>
<footer>
</footer>
<script>
function seeMore()
{
document.getElementById("fade-wrap").style.height = "auto";
document.getElementById("fade-out").style.display = "none";
document.getElementById("read-more").style.display = "none";
//Add anchor to keep track readMore is open.
window.location.href = "#open";
}
// if we detect anchor on url
if (window.location.href.match(/\#open/i))
{
//Scroll to read-more id
document.querySelector('#read-more'). scrollIntoView();
//Display items
seeMore();
}
</script>
</body>
</html>
#褪色包装{
位置:相对位置;
高度:10雷姆;
边缘底部:3rem;
溢出:隐藏;
}
#淡出{
位置:绝对位置;
底部:0;
身高:5雷姆;
宽度:100%;
}
一些文字。。。
一些文字。。。
更多的文字。。。
函数seeMore()
{
document.getElementById(“淡入淡出包装”).style.height=“自动”;
document.getElementById(“淡出”).style.display=“无”;
document.getElementById(“阅读更多”).style.display=“无”;
//添加锚定以跟踪readMore是否打开。
window.location.href=“#打开”;
}
//如果我们在url上检测到锚点
if(window.location.href.match(/\\打开/i))
{
//滚动以读取更多id
document.querySelector(“#阅读更多”).scrollIntoView();
//显示项目
seeMore();
}
我建议研究大多数现代浏览器中的localStorage API。您可以使用JavaScript保存用户最后一次已知的页面“状态”,这将为您提供下次访问时使用的信息
例如,可以设置如下状态:
localStorage.setItem('myUsersPreviousState', 'section_expanded');
然后是未来的呼吁:
var previous_state = localStorage.getItem('myUsersPreviousState');
…将返回“section_expanded”
有了这些,你可以说:
if ( previous_state === 'section_expanded' ) {
// javascript to expand section and scroll to location
}
我尝试了这个,它在Chrome和Opera中发挥了作用……它们回到了扩展页面中的同一个位置。Firefox、IE和Edge保持页面扩展,但会让你回到锚不太好的地方。我将接受@Gray的建议,研究一下localstorageapi,尽管我不熟悉它,并且正忙于学习JavaScript。非常感谢您的帮助,尽管非常感谢。灰色方法更好地保存一些用户信息。但它链接到您的浏览器,如果您只想共享将访问扩展内容的URL,它将不起作用。如果您想滚动到特定的onLoad项,只需更改节选择器的“document.querySelector('#read more').scrollIntoView();”。而且会起作用;)如果没有,请向我们提供样本。对不起,我不确定我是否理解您的意思,您能提供更多信息吗?
document.querySelector(“#阅读更多”).scrollIntoView()
scroll view to#阅读更多标签。如果要滚动到“淡出”,则必须将下面的代码替换为:document.querySelector(“#阅读更多内容”).scrollIntoView()现在关于url上的锚,例如:谁不在同一个卷轴上。当用户与#open anchor on url共享时,新访问者将自动进入正确的位置。啊,好吧,我现在明白了,谢谢,这是一个我没有想到的好主意…我以为你指的是Firefox问题。如果你对FF、IE和Edge出现这种情况的原因有任何想法,我将不胜感激,只需在谷歌上搜索大约一个小时,并尝试了一些东西:访问,但显然不起作用……我的知识非常有限。我花了很长时间才对JavaScript进行排序:)谢谢@Gray,我将尝试使用它,但我对JavaScript的了解非常有限,因此可能超出了我目前的能力范围。