我想使用jQuery去与使用文本框的锚,例如,我想用这种形式:
<form id="gotoanchorform">
<input id="gotoanchorinput" type="text" />
<input type="submit" value="Go to anchor" />
</form>
在这种形式我输入锚点的名称,当我点击“转到锚”按钮或按回车键我想要的页面向下滚动到锚:
<a name="targetAnchor" id="targetAnchor">Target</a>
将如何得到这个使用jQuery工作?
var anchor = $("#gotoanchorinput").val();
var position = $("#"+anchor).offset();
window.scrollTo(position.left, position.top);
这段代码让你的页面滚动写在锚#gotoanchorinput
。
尝试是这样的:
$(function() {
$('form#gotoanchorform').submit(function(e) {
e.preventDefault();
var desired = $('#gotoanchorinput').val();
window.location.href = window.location.href + '#' + desired;
// or
$('html, body').animate({'scrollTop', $('a[name*="' + desired +'"').offset().top + 'px'}, 900);
return false;
});
});
所以,如果你键入“富”,然后点击提交,页面将滚动到其名称属性包含“富”
HTML部分:
<form id="myForm" data-anchor="#myAnchor">
<input type="text" />
<input type="submit" value="Go to anchor" />
</form>
注:数据-X属性是有效的HTML。
JS部分:
$(document).ready(function() {
$('#myForm').submit(function(e){
$(location).attr('href', $(this).attr('data-anchor'));
return false;
});
});
简单地做:
var url = $('#gotoanchorinput').val();
$(location).attr('href',url);