Cug*_*uga 162 html javascript jquery
在我的HTML页面上,我希望能够"转到"/"滚动到"/"关注"页面上的元素.
通常情况下,我会使用带有a的锚标记href="#something"
,但我已经使用hashchange事件和BBQ插件来加载此页面.
那么有没有其他方法,通过JavaScript,让页面转到页面上的给定元素?
这是我正在尝试做的基本概述:
function focusOnElement(element_id) {
$('#div_' + element_id).goTo(); // need to 'go to' this element
}
<div id="div_element1">
yadda yadda
</div>
<div id="div_element2">
blah blah
</div>
<span onclick="focusOnElement('element1');">Click here to go to element 1</span>
<span onclick="focusOnElement('element2');">Click here to go to element 2</span>
Run Code Online (Sandbox Code Playgroud)
use*_*716 216
如果元素当前在页面上不可见,则可以使用本机scrollIntoView()
方法.
$('#div_' + element_id)[0].scrollIntoView( true );
Run Code Online (Sandbox Code Playgroud)
其中的true
意思是与页面顶部对齐,并false
与底部对齐.
否则,有一个scrollTo()
插件的jQuery就可以使用.
或者只是得到top
position()
(文档)的元素,并设置scrollTop()
(文档)到该位置:
var top = $('#div_' + element_id).position().top;
$(window).scrollTop( top );
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 184
插件形式的标准技术看起来像这样:
(function($) {
$.fn.goTo = function() {
$('html, body').animate({
scrollTop: $(this).offset().top + 'px'
}, 'fast');
return this; // for chaining...
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
然后你可以说$('#div_element2').goTo();
滚动到<div id="div_element2">
.选项处理和可配置性留给读者练习.
Gle*_*nnG 168
document.getElementById("elementID").scrollIntoView();
Run Code Online (Sandbox Code Playgroud)
同样的事情,但将其包装在一个函数中:
function scrollIntoView(eleID) {
var e = document.getElementById(eleID);
if (!!e && e.scrollIntoView) {
e.scrollIntoView();
}
}
Run Code Online (Sandbox Code Playgroud)
这甚至适用于iPhone上的IFrame.
使用getElementById的示例:http://www.w3schools.com/jsref/tryit.asp? filename = tryjsref_document_getelementbyid
Anh*_*arp 33
这是一个简单的javascript
当您需要将屏幕滚动到具有id ="yourSpecificElementId"的元素时调用此方法
window.scroll(0,findPos(document.getElementById("yourSpecificElementId")));
Run Code Online (Sandbox Code Playgroud)
你需要这个功能来工作:
//Finds y value of given object
function findPos(obj) {
var curtop = 0;
if (obj.offsetParent) {
do {
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return [curtop];
}
}
Run Code Online (Sandbox Code Playgroud)
屏幕将滚动到您的特定元素.
lor*_*arq 22
要滚动到页面上的特定元素,可以jQuery(document).ready(function($){...})
按如下方式向函数添加函数:
$("#fromTHIS").click(function () {
$("html, body").animate({ scrollTop: $("#toTHIS").offset().top }, 500);
return true;
});
Run Code Online (Sandbox Code Playgroud)
它在所有浏览器中都像魅力一样.根据您的需要调整速度.
归档时间: |
|
查看次数: |
270693 次 |
最近记录: |