div 光标指定内容移动 滚动条也要随着移动

问题描述

/***@author大漠雪狼**//********************************可配置选项********************************///被选中的相似关键字背景颜色varselectedBgColorcompany="#CCCCCC";//未被选中的相似关键字背景颜色varunselectedBgColorcompany="#FFFFFF";//相似关键字列表框的边框varlistBordercompany="1solid#000000";/***************************************************************************//********************************不可配置选项********************************///上一次输入的关键字(用来判断关键字是否有改变,没有则不再去服务端重新获取提示关键字)varoldKeyValuecompany;//鼠标相对于提示关键字列表框的位置(0:提示框外面,1:提示框里面)varmouseLocationcompany=0;//当前选中的提示关键字索引(从0开始,等于-1表示没有被选中项)varselectedKeyIndexcompany=-1;//上一次选中的提示关键字索引(从0开始,等于-1表示没有上次被选中项)varoldSelectedKeyIndexcompany=-1;//提示关键字总数vartdCountcompany=0;/***************************************************************************//*用途:给String对象添加去除左右空格方法*/String.prototype.trim=function(){varm=this.match(/^s*(S+(s+S+)*)s*$/);return(m==null)?"":m[1];}/*用途:初始化提示关键字列表框的状态*/functioninitKeyListState(){selectedKeyIndexcompany=-1;oldSelectedKeyIndexcompany=-1;tdCountcompany=0;}/*用途:将上一次选中的关键字项变为未选中*/functiondisSelectedOldKey(){//判断说明:oldSelectedKeyIndex!=selectedKeyIndexcompany//当只有一个相似关键字的时候,则不存在上一次选中和这次选中关键字,//只要第一次选中后,按向上或向下箭头都是选中。if(oldSelectedKeyIndexcompany!=-1&&oldSelectedKeyIndexcompany!=selectedKeyIndexcompany){document.getElementById('keyIdcompany'+oldSelectedKeyIndexcompany).bgColor=unselectedBgColorcompany;}//上一次选中项更新vardiv=document.getElementById("guestlistDiv");oldSelectedKeyIndexcompany=selectedKeyIndexcompany;//////alert(div.scrollTop);//////vardivobj=document.getElementById("guestlistDiv");////divobj.innerHTML=divobj.innerHTML+document.getElementById("showGuestList").value+"<br>"//divobj.scrollTop=divobj.scrollHeight-divobj.offsetHeight;////////varscrolltop=document.documentElement.scrollTop;//////document.documentElement.scrollTop=scrolltop+1;//}/*用途:当按上下箭头时选中新的提示关键字项,按回车时将选中的提示关键字输入到搜索框。*/functionsetSelectedKey(){//$('keyId0')存在表示有相关提示关键字,不存在则不处理。if(document.getElementById('keyIdcompany0')){if(event.keyCode==38){//------处理向上事件------if(selectedKeyIndexcompany==-1){selectedKeyIndexcompany=tdCountcompany-1;}else{selectedKeyIndexcompany=(selectedKeyIndexcompany+tdCountcompany-1)%tdCountcompany;}document.getElementById('keyIdcompany'+selectedKeyIndexcompany).bgColor=selectedBgColorcompany;disSelectedOldKey();}elseif(event.keyCode==40){//------处理向下事件------if(selectedKeyIndexcompany==-1){selectedKeyIndexcompany=0;}else{selectedKeyIndexcompany=(selectedKeyIndexcompany+1)%tdCountcompany;}document.getElementById('keyIdcompany'+selectedKeyIndexcompany).bgColor=selectedBgColorcompany;disSelectedOldKey();}elseif(event.keyCode==13){//------处理回车事件------document.getElementById('saler').value=document.getElementById('keyIdcompany'+selectedKeyIndexcompany).innerText;setCursorLast(document.getElementById('saler'));//隐藏提示关键字列表框document.getElementById('guestlistDiv').style.display='none';document.getElementById('ExfundcompanynameSearchIframe').style.display='none';}}}/*用途:获取相似关键字*/functiongetConformKey(){varkeyValue=document.getElementById('saler').value.trim();//如果这次的查询关键字和上次的一样,则不去服务器重新获取相似关键字列表。if(keyValue!=oldKeyValuecompany){//关键字为空则不去服务器获取相似关键字列表if(keyValue==''){dwr.util.removeAllRows('showGuestList');setDropListVisible(false);initKeyListState();}else{//采用ajax异步模式获取相似关键字GuestBO.findAllName(keyValue,conformKeyCallback);}}}/*用途:获取关键字回调方法*/functionconformKeyCallback(keyList){dwr.util.removeAllRows('showGuestList');initKeyListState();if(keyList.length>0){//生成相似关键字提示框dwr.util.addRows('showGuestList',keyList,cellFuncs,{cellCreator:function(options){vartd=document.createElement("td");td.id='keyIdcompany'+tdCountcompany++;td.onmouseover=function(){selectedKeyIndexcompany=parseInt(this.id.substring(12,td.id.length));this.bgColor=selectedBgColorcompany;disSelectedOldKey();};td.onclick=function(){document.getElementById('saler').value=this.innerText;document.getElementById('saler').focus();setCursorLast(document.getElementById('saler'));GuestBO.getSearchName(this.innerText,callbaskguest);document.getElementById('guestlistDiv').style.display='none';document.getElementById('ExfundcompanynameSearchIframe').style.display='none';};returntd;},escapeHtml:false});setDropListVisible(true);}else{setDropListVisible(false);}}functioncallbackcode(data){varobjSelect=document.myform.contractno;if(data!=null){objSelect.length=0;for(vari=0;i<data.length;i++){varvarItem=newOption(data[i].contractcode,data[i].contractcode);objSelect.options.add(varItem);}}else{varvarItem=newOption('无',0);objSelect.options.add(varItem);}}functionSearchContract(){varobjSelect=document.myform.contractno;varisContract=document.myform.isContract;if(isContract.checked){document.getElementById('contractno').disabled=false;varsaler=document.getElementById('saler').value;contractJS.getcontractcode(saler,callbackcode);document.myform.isContract.value=1;}if(!isContract.checked){document.myform.isContract.value=0;document.getElementById('contractno').disabled=true;document.all("contractno").options.length=0;}}functionclearcompanyname(){varnames=document.myform.saler.value;GuestBO.findAllName(names,callbackscompany);}functioncallbackscompany(keyList){if(keyList==0){document.myform.saler.value='';}}functioncallbaskguest(data){if(data!=null){document.myform.saler.value=data.name;document.all("contractno").options.length=0;document.getElementById('contractno').disabled=true;document.getElementById('isContract').checked=false;}}/*用途:表格数据显示处理方法*/varcellFuncs=[function(data){returndata;}];/*用途:将输入框的光标移到最后*/functionsetCursorLast(inputObj){varinputRange=inputObj.createTextRange();inputRange.collapse(true);inputRange.moveStart('character',inputObj.value.length);inputRange.select();}/*用途:创建相似关键字列表框*/functioncreateShowDiv(){varshowIframeeExfundcompanyname=document.createElement("iframe");showIframeeExfundcompanyname.id="ExfundcompanynameSearchIframe";with(showIframeeExfundcompanyname.style){varoRect=document.getElementById('saler').getBoundingClientRect();left=oRect.left;top=oRect.top+20;//left=300;//top=300;width=283;border=listBordercompany;zIndex="1";position="absolute";display='none';backgroundColor=unselectedBgColorcompany;}showIframeeExfundcompanyname.onmouseover=function(){mouseLocation=1;};showIframeeExfundcompanyname.onmouseout=function(){mouseLocation=0;};document.body.appendChild(showIframeeExfundcompanyname);varshowDiv=document.createElement("div");showDiv.id="guestlistDiv";with(showDiv.style){varoRect=document.getElementById('saler').getBoundingClientRect();left=oRect.left;top=oRect.top+20;//left=300;//top=300;width=283;border=listBordercompany;zIndex="1";position="absolute";display='none';backgroundColor=unselectedBgColorcompany;}showDiv.onmouseover=function(){mouseLocationcompany=1;};showDiv.onmouseout=function(){mouseLocationcompany=0;};showDiv.innerHTML="<divstyle='width:100%;height:150px;overflow:auto;'><tableborder='0'style='width:100%;font-size:12;'><tbodyid='showGuestList'style='color:#000000;margin-left:0;margin-right:0;margin-bottom:0;margin-top:0;'></tbody></table></div>";document.body.appendChild(showDiv);initKeyListState();}/*用途:设置相似关键字列表框是否可见参数:isDisplay,true表示可见,false表示不可见*/functionsetDropListVisible(isDisplay){if(mouseLocationcompany==1){return;}if((document.getElementById('saler').value.trim()!='')&&(isDisplay==true)){document.getElementById('guestlistDiv').style.display='';document.getElementById('ExfundcompanynameSearchIframe').style.display='';}else{document.getElementById('guestlistDiv').style.display='none';document.getElementById('ExfundcompanynameSearchIframe').style.display='none';}}functiongetPosLeft(obj){varl=obj.offsetLeft;while(obj=obj.offsetParent){l+=obj.offsetLeft;}returnl;}functiongetPosTop(obj){varl=obj.offsetTop;while(obj=obj.offsetParent){l+=obj.offsetTop;}returnl;}

解决方案

解决方案二:
上面是导入的js页面<inputtype="text"id="saler"name="saler"class="wenziyu2"size="25"autocomplete="off"onKeyDown="oldKeyValuecompany=this.value.trim();setSelectedKey();"onKeyUp="getConformKey();"onFocus="createShowDiv();setDropListVisible(true);"onBlur="setDropListVisible(false);clearcompanyname();"style="width:280;height:20;z-index:10;top:0;left:0;"想要加入选中层的内容按上下键时滚动条随着光标移动,上面的还有很多小bug高手帮忙修改下

时间: 2024-08-03 04:14:09

div 光标指定内容移动 滚动条也要随着移动的相关文章

html中设置让div中的内容超出后自动显示滚动条

 在html页面中,我们有时需要让div中的内容超出后自动显示滚动条,我们可以这样设置: 代码如下: <div class="classlist"> <div class="autoScroll"> <asp:RadioButtonList ID="rblClasses" runat="server" DataTextField="className" DataValueFie

span-如何删除DIV内指定ID的SPAN标签及SPAN内的内容

问题描述 如何删除DIV内指定ID的SPAN标签及SPAN内的内容 <div id=""showfj""><span id=""AAA""><a href=""javascript:void(0)"">Chrysanthemum.jpg</a></span><span id=""BBB"&qu

c# 2 0-如何将网页中指定DIV中的内容插入到WORD中指定标签位置进行替换?

问题描述 如何将网页中指定DIV中的内容插入到WORD中指定标签位置进行替换? 我用以下代码实现了文本替换指定标签.请问如何实现将网页中指定DIV中的内容对WORD中指定标签进行替换?请给出源码,请尽可能通过这个类进行操作.. protected void ReplaceWordDocAndSave(Microsoft.Office.Interop.Word.Document docObject, object savePath) { object format = Microsoft.Offi

jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法_jquery

本文实例讲述了jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法.分享给大家供大家参考.具体如下: 本效果可实现左上角Logo的置顶但不滚动,而文字也就是网页主体区滚动,当用户拖动滚动条的时候可看到此效果,例子挺简单. 先看一下运行效果截图: 具体代码如下: <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&qu

DIV CSS隐藏内容样式方法大全

 DIV CSS网页布局有很多值得学习的地方,这里和大家重点讨论一下DIV CSS隐藏内容样式方法,相信本文介绍一定会让你有所收获.   DIV CSS隐藏内容样式方法   CSS隐藏的用途   1.对文本的隐藏   2.隐藏超链接(另类黑链)   3.对统计代码隐藏   4.隐藏超出图片   5.CSS隐藏滚动条   6.CSS来隐藏DIV层   使用CSS隐藏方法   1.使用display:none;来隐藏所有信息(无空白位占据)推荐,CSSdisplay手册查看   2.使用overfl

图片-js 鼠标按住内容实现滚动内容 实现滚动条滚动效果

问题描述 js 鼠标按住内容实现滚动内容 实现滚动条滚动效果 就是不用右边的滚动条,,然后里面的vvvvvvv文字鼠标按住后,拖动它可以上下滚动,达到滚动条效果.. 解决方案 mousedown后添加mousemove事件,判断鼠标y轴移动方向,设置容器scrollTop就可以滚动了..不过你要禁止选择内容,要不选中内容不太好看.. <style> .noselect{ -moz-user-select: none; /*火狐*/ -webkit-user-select: none; /*we

CSS如何隐藏div及html内容

CSS隐藏div盒子及html内容方法 Html中怎么使用CSS样式隐藏内容,又不影响代码功能使用. 我们常常想隐藏一些内容,比如网站添加第三方统计显示的图标,如何通过CSS隐藏,但又不影响网站统计;怎么让图片作为背景,但文字又不显示,如何隐藏等问题.divcss5给大家分享分享. 一.普通隐藏网页内容 CSS样式单词:display:none 假如我们想隐藏一段统计代码,但又不想显示出统计代码图标,又不影响统计功能,我们即可使用此CSS样式单词display:none(这单词意思不显示对象及对

js替换指定内容正则表达式

js替换指定内容正则表达式 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=

ava cript-JavaScript读取指定内容行时遇到问题

问题描述 JavaScript读取指定内容行时遇到问题 JavaScript读取指定内容行时遇到问题:我从文本中复制某一行字符串到js中,然后用一下代码进行读取: while ((s = ts.ReadLine()) != "object block {YZB-PBGA}") { s = ts.ReadLine(); } alert(s); 可是有时候就会报错,说输入超出文件尾,不知道这是什么情况,应该如何处理? 解决方案 你要判断是否读到尾,你这个就没有判断是否到底文件尾 while