我有这个输入元素:
<input type="text" class="textfield" value="" id="subject" name="subject">
然后我还有一些其他元素,比如其他标签的&<textarea>标签等等。。。
当用户点击<input id=“#subject”>时,页面应该滚动到页面的最后一个元素,并且应该使用一个漂亮的动画(应该滚动到底部而不是顶部)。
页面的最后一项是带有#submit的提交按钮:
<input type="submit" class="submit" id="submit" name="submit" value="Ok, Done.">
动画不应该太快,应该是流畅的。
我正在运行最新的jQuery版本。我宁愿不安装任何插件,而是使用默认的jQuery特性来实现这一点。
值得一提的是,这就是我如何为可以在DIV中滚动的通用元素实现这样的行为。在我们的例子中,我们不滚动整个页面,只滚动带有溢出的特定元素:auto;在更大的布局内。
它创建了一个目标元素高度的假输入,然后将焦点放在它上,无论你在可滚动的层次结构中有多深,浏览器都会关注其余部分。就像一个魅力。
var $scrollTo = $('#someId'),
inputElem = $('<input type="text"></input>');
$scrollTo.prepend(inputElem);
inputElem.css({
position: 'absolute',
width: '1px',
height: $scrollTo.height()
});
inputElem.focus();
inputElem.remove();
jQuery.sollTo():视图-演示,API,源代码
我编写了这个轻量级插件,使页面/元素滚动更加容易。它很灵活,可以传入目标元素或指定值。也许这可能是jQuery下一次正式发布的一部分,你觉得呢?
示例用法:
$('body').scrollTo('#target'); // Scroll screen to target element
$('body').scrollTo(500); // Scroll screen 500 pixels down
$('#scrollable').scrollTo(100); // Scroll individual element 100 pixels down
选项:
scrollTarget:指示所需滚动位置的元素、字符串或数字。
offsetTop:定义滚动目标上方额外间距的数字。
duration:一个字符串或数字,决定动画将运行多长时间。
easing:一个字符串,指示用于转换的缓和函数。
complete:动画完成后调用的函数。