我对如何动态更改按钮中的href=""
有疑问。
下面的jsfiddle显示了一个固定在视口底部的按钮,从登录页面开始:
按钮的html如下:
<div class="button">
<a href="#first" class="" style="width: 80px; height: 80px; opacity: 1;">
<img src="img/down.png" alt="down">
</a>
</div>
单击它时,我希望它滚动到下一部分,并将href =“”更改为页面的以下部分。因此,首次单击时,href将更改为#second。当用户手动滚过某个部分时,显然还需要更改。
这适用于单页网站。我怎么会这样做?
答案 0 :(得分:2)
使用.prop()更改其值
$(".button").on('click', function(){
$('.button').find('a').prop('href', '#services');
});
答案 1 :(得分:1)
我不习惯jquery。这是一个纯粹的JavaScript解决方案。它肯定会改变哈希值。
<body>
<div id="sections">
<section id="s100">asdfasd</section>
<section id="s101"></section>
<section id="s102"></section>
<section id="s103"></section>
<section id="s104">asdfasdasdfsdf</section>
<section id="s105"></section>
</div>
<div class="nav-bar">
<a id="next-button" class="button" href="#s100">Next</a>
</div>
<script type="text/javascript">
var sections = document.getElementById("sections");
var nextButton = document.getElementById('next-button');
sections.onscroll = function (evt) {
}
var counter = 100;
var limit = 105;
// closure
nextButton.onmouseup = function (evt) {
var incCounter = function () {
// add your custom conditions here
if(counter <= limit)
return counter++;
return 0;
};
var c = incCounter();
if(c != 0)
this.setAttribute('href', "#s" + c);
}
</script>
</body>
CSS
html, body {
height: 100%;
width: 100%;
overflow: hidden;
}
#sections {
height: 50%;
width: 100%;
overflow: scroll;
}
.nav-bar {
margin: 30px 20px;
}
.button {
text-decoration: none;
border: 1px solid #999;
padding: 10px;
font-size: 120%;
}
答案 2 :(得分:1)
我为此编写了一个小的jQuery插件,只是将其推送到GitHub。 https://github.com/ferdinandtorggler/scrollstack
你基本上想做的是打电话
$('.button').scrollstack({stack: ['#first', '#second', ... ]});
当你在按钮上调用它时,你甚至不需要链接。所以检查一下,让我知道它是否适合你。 ;)
在这里,您可以尝试并阅读更多内容:http://ferdinandtorggler.github.io/scrollstack/
答案 3 :(得分:1)
您可以使用fullPage.js插件来实现您想要的效果。也许它比从cero编码更快:)