❶ 如何通过js将滚动条移动到指定元素位置
var container = $('div'),
scrollTo = $('#row_8');
container.scrollTop(
scrollTo.offset().top - container.offset().top + container.scrollTop()
);
// Or you can animate the scrolling:
container.animate({
scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop()
});
❷ 使用js或jq控制一个div,当滚动到页面顶部的时候固定在顶部,离开可继续滚动吗
代码:
•$(function(){
•//获取要定位元素距离浏览器顶部的距离
•var navH = $(".nav").offset().top;
•//滚动回条事件
•$(window).scroll(function(){
•//获取滚动条的滑动答距离
•var scroH = $(this).scrollTop();
•//滚动条的滑动距离大于等于定位元素距离浏览器顶部的距离,就固定,反之就不固定
•if(scroH>=navH){
•$(".nav").css({"position":"fixed","top":0});
•}else if(scroH<navH){
•$(".nav").css({"position":"static"});
•}
•})
•})
❸ js怎么控制网页滚动到指定位置
使用scrollby(x轴,y轴)方法就可以使文档对象滚动到距离浏览器窗口坐标的指定位置上
注意事项
文档对象可以看做是网页所有可见内容的存储容器,网页所有可见内容称为页面
网页x轴坐标与数学一样,但是y轴坐标是相反的,向下是正数,向上是负数
页面移动出去的距离不能和滚动条移动出去的距离对等
滚动条移动出去多少像素才能等达到页面要移动出去的像素是根据整个页面的尺寸比例计算的
这个文档对象移动出去的距离在坐标系上是一定是负数,但是我们要用正数来表示他距离浏览器窗口0,0坐标的距离
这个方法移动的是文档对象和浏览器存储文档对象的窗口0,0位置坐标的距离,绝不是滚动条和文档对象的距离,
移动出去的距离就是文档对象不可见部分内容和浏览器存储文档对象的窗口0,0坐标的距离
这个方法使用scroll命名只是因为文档对象移动出去的距离需要滚动条滚动才能达到效果,便于记忆而已
scrollby()方法是window对象下的方法,document对象及其子对象没有该方法
document对象及其子对象如果要获取或设置元素内部内容滚动出去的距离,请使用scrollTop和scrollLeft, 注意该方法是计算的不可见部分移动出去的内容顶端距离容器的距离是从容器内边距开始计算,而不是边框
使用scrollby()必须存在滚动条,且有一定的高度才能看出方法的效果
❹ js设置div滚动到固定位置
可以设置div的scrollTop值。
div当中有滚动的时候,设置scrollTop可以滚动到指定的滚动顶部位置。如果需要动画,可以使用css3的过渡或者动画函数,jquery可以用animate函数。
❺ js濡備綍鎺у埗鏁翠釜椤甸潰婊氬姩鏉$殑浣嶇疆
鏈変袱绉嶆柟娉曘
1銆侀氳繃div鐨剆crollTop鍙樺姩鎺у埗鍨傜洿婊氬姩鏉′綅缃銆傞氳繃div鐨剆crollLeft鍙樺姩鎺у埗姘村钩婊氬姩鏉′綅缃銆
绀轰緥锛
<body>
//d1鏄澶栧眰div锛屽甫婊氬姩鏉
<div id='d1' style='height:200px;width:100px;overflow:auto;background:blue;'>
<div style='height:500px;width:500px;background:yellow'>2222</div>
</div>
</body>
<script>
document.getElementById('d1').scrollTop=100;//閫氳繃scrollTop璁剧疆婊氬姩鍒100浣嶇疆
document.getElementById('d1').scrollLeft=200;//閫氳繃scrollTop璁剧疆婊氬姩鍒200浣嶇疆
</script>
2銆佺敤html閿氱偣
濡備笅锛
<ahref="#test">aaaaa</a>
<divid="test">lalallalalalala</div>
鎵╁睍璧勬枡锛
1銆丣avaScript鏄涓绉嶅睘浜庣綉缁滅殑鑴氭湰璇瑷,宸茬粡琚骞挎硾鐢ㄤ簬Web搴旂敤寮鍙,甯哥敤鏉ヤ负缃戦〉娣诲姞鍚勫紡鍚勬牱鐨勫姩鎬佸姛鑳,涓虹敤鎴锋彁渚涙洿娴佺晠缇庤傜殑娴忚堟晥鏋溿傞氬父javaScript鑴氭湰鏄閫氳繃宓屽叆鍦℉TML涓鏉ュ疄鐜拌嚜韬鐨勫姛鑳界殑銆侸avascript鑴氭湰璇瑷鍚屽叾浠栬瑷涓鏍凤紝鏈夊畠鑷韬鐨勫熀鏈鏁版嵁绫诲瀷锛岃〃杈惧紡鍜岀畻鏈杩愮畻绗﹀強绋嬪簭鐨勫熀鏈绋嬪簭妗嗘灦銆侸avascript鎻愪緵浜嗗洓绉嶅熀鏈鐨勬暟鎹绫诲瀷鍜屼袱绉嶇壒娈婃暟鎹绫诲瀷鐢ㄦ潵澶勭悊鏁版嵁鍜屾枃瀛椼傝屽彉閲忔彁渚涘瓨鏀句俊鎭鐨勫湴鏂癸紝琛ㄨ揪寮忓垯鍙浠ュ畬鎴愯緝澶嶆潅鐨勪俊鎭澶勭悊銆
锛1锛夈佹槸涓绉嶈В閲婃ц剼鏈璇瑷锛堜唬鐮佷笉杩涜岄勭紪璇戯級銆
锛2锛夈佷富瑕佺敤鏉ュ悜HTML锛堟爣鍑嗛氱敤鏍囪拌瑷涓嬬殑涓涓搴旂敤锛夐〉闈㈡坊鍔犱氦浜掕屼负銆
锛3锛夈佸彲浠ョ洿鎺ュ祵鍏HTML椤甸潰锛屼絾鍐欐垚鍗曠嫭鐨刯s鏂囦欢鏈夊埄浜庣粨鏋勫拰琛屼负鐨勫垎绂汇
锛4锛夈佽法骞冲彴鐗规э紝鍦ㄧ粷澶у氭暟娴忚堝櫒鐨勬敮鎸佷笅锛屽彲浠ュ湪澶氱嶅钩鍙颁笅杩愯岋紙濡俉indows銆丩inux銆丮ac銆丄ndroid銆乮OS绛夛級銆
2銆丣avaScript鑴氭湰璇瑷鍏锋湁浠ヤ笅鐗圭偣:
(1)銆佽剼鏈璇瑷銆侸avaScript鏄涓绉嶈В閲婂瀷鐨勮剼鏈璇瑷,C銆丆++绛夎瑷鍏堢紪璇戝悗鎵ц,鑰孞avaScript鏄鍦ㄧ▼搴忕殑杩愯岃繃绋嬩腑閫愯岃繘琛岃В閲娿
(2)銆佸熀浜庡硅薄銆侸avaScript鏄涓绉嶅熀浜庡硅薄鐨勮剼鏈璇瑷,瀹冧笉浠呭彲浠ュ垱寤哄硅薄,涔熻兘浣跨敤鐜版湁鐨勫硅薄銆
(3)銆佺畝鍗曘侸avaScript璇瑷涓閲囩敤鐨勬槸寮辩被鍨嬬殑鍙橀噺绫诲瀷,瀵逛娇鐢ㄧ殑鏁版嵁绫诲瀷鏈鍋氬嚭涓ユ牸鐨勮佹眰,鏄鍩轰簬Java鍩烘湰璇鍙ュ拰鎺у埗鐨勮剼鏈璇瑷,鍏惰捐$畝鍗曠揣鍑戙
(4)銆佸姩鎬佹с侸avaScript鏄涓绉嶉噰鐢ㄤ簨浠堕┍鍔ㄧ殑鑴氭湰璇瑷,瀹冧笉闇瑕佺粡杩嘩eb鏈嶅姟鍣ㄥ氨鍙浠ュ圭敤鎴风殑杈撳叆鍋氬嚭鍝嶅簲銆傚湪璁块棶涓涓缃戦〉鏃,榧犳爣鍦ㄧ綉椤典腑杩涜岄紶鏍囩偣鍑绘垨涓婁笅绉汇佺獥鍙gЩ鍔ㄧ瓑鎿嶄綔JavaScript閮藉彲鐩存帴瀵硅繖浜涗簨浠剁粰鍑虹浉搴旂殑鍝嶅簲銆
(5)銆佽法骞冲彴鎬с侸avaScript鑴氭湰璇瑷涓嶄緷璧栦簬鎿嶄綔绯荤粺,浠呴渶瑕佹祻瑙堝櫒鐨勬敮鎸併傚洜姝や竴涓狫avaScript鑴氭湰鍦ㄧ紪鍐欏悗鍙浠ュ甫鍒颁换鎰忔満鍣ㄤ笂浣跨敤,鍓嶆彁涓婃満鍣ㄤ笂鐨勬祻瑙堝櫒鏀 鎸丣avaScript鑴氭湰璇瑷,鐩鍓岼avaScript宸茶澶у氭暟鐨勬祻瑙堝櫒鎵鏀鎸併
鍙傝冭祫鏂欙細鐧惧害鐧剧戯細JavaScript
❻ js如何在页面滚动到一定位置时触发事件
要实现这样的效果你需要使用到 滚动条事件 以及 元素在文档中的绝对定位。
比如我加载了100条微博,第一百条微博这个块级元素为 myBlock , 使用递归往上寻找父元素的方法求得myBlock在文档中的绝对位置:
function getTop(e)
{
var offset=e.offsetTop;
if(e.offsetParent!=null) //只要还有父元素,也就是当前元素不是根节点就继续往上累计元素的高度
offset+=getTop(e.offsetParent);
return offset;
}
var myBlockTop = getTop(myBlock);
获得了第100条微博的绝对高度后注册滚动条事件:window.addEventListener("scroll",function(){
if(document.body.scrollTop + (document.body.clientHeight || window.innerHTML) >= myBlockTop){
//当当前可视部分底部到达第100条微博的高度坐标时,进入这个if块
}
}
大概就这么实现,希望对您能有帮助
//----------------------------------------------
IE9以下对W3C标准支持得异常惨烈好像不支持那个window.addEventListener()得使用window.attachEvent('onscroll',function(){.......................});
反正思路是这样,你自己可以试试
❼ 怎样用javascript实现页面滚动到指定的控件
<HTML>
<HEAD>
<!-- 滚动区域坐标大小定位-->
<STYLE type=text/css>
#divContainer {
CLIP: rect(0px 294px 20px 0px); HEIGHT: 20px; LEFT: 0px; OVERFLOW: hidden; POSITION: absolute; TOP: 0px; VISIBILITY: hidden; WIDTH: 294px
}
#divContent {
LEFT: 0px; POSITION: absolute; TOP: 0px
}
</STYLE>
<SCRIPT language=JavaScript>
// 滚动开始
function verifyCompatibleBrowser(){
this.ver=navigator.appVersion
this.dom=document.getElementById?1:0
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
return this
}
bw=new verifyCompatibleBrowser()
var speed=0
var loop, timer
function ConstructObject(obj,nest){
nest=(!nest) ? '':'document.'+nest+'.';
this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
//内容宽度
this.scrollWidth=bw.ns4?this.css.document.width:this.el.offsetWidth;
//显示区域宽度
this.clipWidth=bw.ns4?this.css.clip.width:this.el.offsetWidth;
this.left=MoveAreaLeft;
this.right=MoveAreaRight;
this.MoveArea=MoveArea; this.x; this.y;
this.obj = obj + "Object";
eval(this.obj + "=this");
return this;
}
function MoveArea(x,y){
this.x=x;this.y=y
this.css.left=this.x
this.css.top=this.y
}
function MoveAreaRight(move){
//alert("this.scrollWidth="+this.scrollWidth+" objContainer.clipWidth="+objContainer.clipWidth+"\n"+" objContainer.clipWidth-this.scrollWidth="+(objContainer.clipWidth-this.scrollWidth)+"\n"+"this.x="+this.x);
document.getElementById("previous").style.display = "block";
document.getElementById("previousq").style.display = "block";
if(this.x>objContainer.clipWidth-this.scrollWidth){
this.MoveArea(this.x-move,0)
if(loop) setTimeout(this.obj+".right("+move+")",speed)
}
else{
document.getElementById("next").style.display = "none";
document.getElementById("nextq").style.display = "none";
}
}
function MoveAreaLeft(move){
document.getElementById("next").style.display = "block";
document.getElementById("nextq").style.display = "block";
if(this.x<0){
this.MoveArea(this.x-move,0)
if(loop) setTimeout(this.obj+".left("+move+")",speed)
}
else{
document.getElementById("previous").style.display = "none";
document.getElementById("previousq").style.display = "none";
}
}
//滚动方法
function PerformScroll(speed){
if(initialised){
loop=true;
if(speed>0) objScroller.right(speed)
else objScroller.left(speed)
}
}
//停止滚动方法
function CeaseScroll(){
loop=false
if(timer) clearTimeout(timer)
}
//初始化
var initialised;
function InitialiseScrollableArea(){
objContainer=new ConstructObject('divContainer')
objScroller=new ConstructObject('divContent','divContainer')
objScroller.MoveArea(0,0)
objContainer.css.visibility='visible'
initialised=true;
if(objScroller.scrollWidth>objContainer.clipWidth){
document.getElementById("previous").style.display = "none";
document.getElementById("next").style.display = "block";
document.getElementById("previousq").style.display = "none";
document.getElementById("nextq").style.display = "block";
}
}
// 滚动结束
</SCRIPT>
</HEAD>
<BODY onload=InitialiseScrollableArea()>
<TABLE border=0 cellPadding=0 cellSpacing=0 height=300 width=360>
<TBODY>
<TR>
<TD background=ckh.files/a_r1_c2.jpg>
<!--滚动区域开始-->
<DIV id=divContainer style="LEFT: 50px; TOP: 50px; VISIBILITY: visible">
<DIV id=divContent>
<nobr>
但一天过去了我始终没有找到合适的配色方案但一天过去了但一天过去了我始终没有找到合适的配色方案但一天过去了但一天过去了我始终没有找到合适的配色方案但一天过去了但一天过去了我始终没有找到合适的配色方案但一天过去了
</nobr>
</DIV>
</DIV>
<!--滚动区域结束 -->
</TD>
</TR>
<!--滚动按钮开始 -->
<tr>
<td id=starttd>
<DIV id="previousq">
<A href="javascript:;" onmouseout=CeaseScroll() onmouseover=PerformScroll(-200)>
快进左
</A>
</DIV>
<br><br>
<DIV id="previous">
<A href="javascript:;" onmouseout=CeaseScroll() onmouseover=PerformScroll(-3)>
向左
</A>
</DIV>
</td>
<td>
<DIV id="next">
<A href="javascript:;" onmouseout=CeaseScroll() onmouseover=PerformScroll(3)>
向右
</A>
</DIV>
<br><br>
<DIV id="nextq">
<A href="javascript:;" onmouseout=CeaseScroll() onmouseover=PerformScroll(200)>
快进右
</A>
</DIV>
</td>
</tr>
<!--滚动按钮结束 -->
</TBODY>
</TABLE>
</BODY>
</HTML>
❽ JS/JAVASCRIPT 选中文本框内的文字 让滚动条滚动到选中文字的位置
function func(){
var textarea = document.getElementById("textarea");
//首先移动光标到所选文字位置,滚动条自动滚动
MoveCursortoPos('textarea' , 30 );
//再选中文字
textarea.setSelectionRange(30,32);//选中文本框内的文字
//textarea.scrollTop = textarea.scrollHeight;//滚动到底部
//想要修改成只滚动到 选中文字 的位置应该怎么写?
}
//设置光标位置
function MoveCursortoPos(id,pos){//定位光标到某个位置
var obj = document.getElementById(id); //获得元素
pos = pos ?pos :obj.value.length;
if (obj.createTextRange) {//IE浏览器 IE浏览器中有TextRange 对body,textarea,button有效
var range = obj.createTextRange(); //创建textRange
range.moveStart("character", pos); //移动开始点,以字符为单位
range.collapse(true);//没有移动结束点直接 折叠到一个点
range.select();//选择这个点
} else {//非IE浏览器
obj.setSelectionRange(obj.value.length, pos);
}
obj.focus();
}