我 有这样一个案例,需要在用户完成评论是跳转到评论的开始位置。在这里用到了jquery的animate方法
var first = $('.pCenter');
var firstTop = first.offset().top;
addReply($('#cont').val());
var bd = (window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body');
bd.animate({scrollTop: firstTop}, 500);
本例参考了一下代码
var scrolltotop={
//startline: 鼠标向下滚动了100px后出现#topcontrol
//scrollto: 它的值可以是整数,也可以是一个id标记。若为整数(假设为n),则滑动到距离top的n像素处;若为id标记,则滑动到该id标记所在的同等高处
//scrollduration:滑动的速度
//fadeduration:#topcontrol这个div的淡入淡出速度,第一个参数为淡入速度,第二个参数为淡出速度
//controlHTML:控制向上滑动的html源码,默认为<img src="up.png" style="width:48px; height:48px" />,可以自行更改。该处的html代码会被包含在一个id标记为#topcontrol的div中。
//controlattrs:控制#topcontrol这个div距离右下角的像素距离
//anchorkeyword:滑动到的id标签
/*state: isvisible:是否#topcontrol这个div为可见
shouldvisible:是否#topcontrol这个div该出现
*/
setting: {startline:100, scrollto: 0, scrollduration:500, fadeduration:[500, 100]},
controlHTML: '<a href="#top">back-to-top</a>',
controlattrs: {offsetx:5, offsety:5},
anchorkeyword: '#top',
state: {isvisible:false, shouldvisible:false},
scrollup:function(){
if (!this.cssfixedsupport) {
this.$control.css({opacity:0})
};//点击后隐藏#topcontrol这个div
var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto);
if (typeof dest=="string" && jQuery('#'+dest).length==1) { //检查若scrollto的值是一个id标记的话
dest=jQuery('#'+dest).offset().top;
} else { //检查若scrollto的值是一个整数
dest=this.setting.scrollto;
};
this.$body.animate({scrollTop: dest}, this.setting.scrollduration);
},
keepfixed:function(){
//获得浏览器的窗口对象
var $window=jQuery(window);
//获得#topcontrol这个div的x轴坐标
var controlx=$window.scrollLeft() + $window.width() - this.$control.width() - this.controlattrs.offsetx;
//获得#topcontrol这个div的y轴坐标
var controly=$window.scrollTop() + $window.height() - this.$control.height() - this.controlattrs.offsety;
//随着滑动块的滑动#topcontrol这个div跟随着滑动
this.$control.css({left:controlx+'px', top:controly+'px'});
},
togglecontrol:function(){
//当前窗口的滑动块的高度
var scrolltop=jQuery(window).scrollTop();
if (!this.cssfixedsupport) {
this.keepfixed();
};
//若设置了startline这个参数,则shouldvisible为true
this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false;
//若shouldvisible为true,且!isvisible为true
if (this.state.shouldvisible && !this.state.isvisible){
this.$control.stop().animate({opacity:1}, this.setting.fadeduration[0]);
this.state.isvisible=true;
} //若shouldvisible为false,且isvisible为false
else if (this.state.shouldvisible==false && this.state.isvisible){
this.$control.stop().animate({opacity:0}, this.setting.fadeduration[1]);
this.state.isvisible=false;
}
},
init:function(){
jQuery(document).ready(function($){
var mainobj=scrolltotop;
var iebrws=document.all;
mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest; //not IE or IE7+ browsers in standards mode
mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body');
//包含#topcontrol这个div
mainobj.$control=$('<div id="topcontrol">'+mainobj.controlHTML+'</div>')
.css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', bottom:mainobj.controlattrs.offsety, right:mainobj.controlattrs.offsetx, opacity:0, cursor:'pointer'})
.attr({title:'Scroll Back to Top'})
.click(function(){mainobj.scrollup(); return false;})
.appendTo('body');
if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') {//loose check for IE6 and below, plus whether control contains any text
mainobj.$control.css({width:mainobj.$control.width()}); //IE6- seems to require an explicit width on a DIV containing text
};
mainobj.togglecontrol();
//点击控制
$('a[href="' + mainobj.anchorkeyword +'"]').click(function(){
mainobj.scrollup();
return false;
});
$(window).bind('scroll resize', function(e){
mainobj.togglecontrol();
});
});
}
};
scrolltotop.init();
分享到:
相关推荐
通过编写JavaScript代码,我们可以精确控制滚动条的行为,如滑动速度、触发动画等,同时,还能实现跨平台的兼容性,确保在不同设备上一致的表现。 对于"支持各种回调"这一点,这意味着开发者可以监听滚动事件,当...
在JavaScript(JS)编程中,控制滚动条自动向下滚动是一种常见的需求,特别是在实时聊天、论坛或者日志更新等场景中,我们希望用户能够始终保持看到最新的内容。本篇将详细讲解如何利用JavaScript实现这一功能,以及...
总的来说,"JS模仿横向滚动条"涉及的知识点包括JavaScript事件监听、DOM操作、CSS样式定制、以及动画效果的实现。通过这些技术的结合运用,开发者可以创建出既美观又具有交互性的自定义滚动条,提升网页的用户体验。
总结来说,JS原生实现滚动条效果主要涉及监听滚动事件、获取和改变滚动位置、自定义滚动条样式以及模拟滚动条和滚动动画。通过这些技术,开发者可以创建出更具个性化的滚动体验,满足不同项目的需求。
1. **源码文件**:这是实现自定义滚动条功能的核心代码,可能是.js文件,用于定义滚动条的样式和行为。这些文件通常包含了CSS样式定义(如scss或less)和JavaScript逻辑(如jQuery插件或者纯JavaScript模块),用于...
5. **添加动画效果**:为了增加酷炫感,可以使用CSS过渡(`transition`)或JavaScript动画库(如GSAP)为滚动条添加平滑滚动效果。 6. **兼容性处理**:不同的浏览器对滚动条自定义的支持程度不同,所以需要进行...
因此,"New js 滚动条"通常是利用JavaScript库或者自定义代码来实现更加个性化和动态的滚动效果。 一、JavaScript滚动条的优势 1. 可定制性:JavaScript允许开发者自定义滚动条的样式,颜色,宽度,甚至动画效果,...
总之,通过JavaScript模拟滚动条,我们可以实现跨浏览器的个性化滚动体验,同时结合CSS3的样式定制,可以创造出符合网站设计风格的独特滚动条,提升用户体验。不过,需要注意的是,过度复杂的滚动条可能会影响页面...
综上所述,JavaScript在处理滚动条兼容性方面提供了多种方法和策略,包括使用CSS自定义Webkit内核的滚动条样式,通过事件监听滚动行为,以及借助第三方库实现更强大的自定义滚动条功能。在实际开发中,应根据项目...
在本主题中,我们将深入探讨如何使用`jscroll.js`这个JavaScript库来实现类似QQ软件那样的滚动条效果。 `jscroll.js`是一个轻量级的JavaScript插件,主要用于创建自定义的滚动条,它可以提供更加优雅的滚动体验,...
【标题】"js图片左右滚动条切换.zip"所包含的知识点主要是关于JavaScript(JS)实现的图片滚动条交互效果,这种效果通常用于图片相册或展示类网站,以提供用户友好的图片浏览体验。在现代网页设计中,动态且可自定义...
虽然CSS能实现基本的滚动条样式定制,但若要实现更复杂的交互效果,如动态改变滚动条样式、添加动画等,就需要借助JS。以下是一个简单的例子,展示了如何用JS监听滚动事件并修改滚动条状态: ```javascript window....
本篇文章将详细探讨如何使用jQuery来实现这样的精美滚动条。 首先,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。通过jQuery,我们可以轻松地对网页中的滚动条进行...
原生JS(JavaScript)滚动条插件能够帮助开发者自定义和美化浏览器的默认滚动条,使其符合网站的整体风格。本资源包“原生js scrollbars滚动条插件设置浏览器竖直滚动条美化”提供了一套解决方案,专用于竖直滚动条...
而使用Jquery实现的水平滚动条可以提供更加灵活、美观且用户体验良好的解决方案。本篇将深入探讨如何利用Jquery插件来创建这样的功能。 首先,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、...
JavaScript(简称JS)提供了一种方式来实现这一功能,让我们深入探讨一下如何使用JavaScript来模拟滚动条。 首先,我们需要了解原生浏览器的滚动条是由浏览器自身控制的,其样式和行为通常无法直接修改。但在CSS3中...
通过阅读和分析这些源码,开发者可以学习到如何利用JavaScript创建自定义滚动条,以及如何实现过渡动画。 在实际应用中,要根据项目需求选择合适的库或编写自定义代码。同时,考虑到性能和可维护性,应尽量避免过度...
在这个特定的场景中,我们讨论的是如何使用JS实现Tab选项卡的滑动切换,同时带有滚动条的内容滚动功能。这种功能常见于网页设计中,可以有效地组织和展示大量信息,提升用户体验。 首先,`index.html`是网页的主体...
而“工具”标签可能表明这个滚动条实现可以作为一种增强网页交互性的工具,开发者可以将其整合到自己的开发工具箱中。 【压缩包子文件的文件名称列表】:ajaxProcessBar_text 这个文件名暗示了压缩包中可能包含...
JavaScript(简称JS)是一种强大的客户端脚本语言,可以用来实现各种动态效果,包括自定义滚动条。本文将深入探讨如何使用JavaScript来实现滚动条效果,以及相关的技术细节。 ### 1. 基本原理 滚动条的实现主要...