场景背景在前端开发中,我们经常遇到需要渲染大量数据列表的场景。最近在开发CodeBuddy的代码文件浏览功能时,我需要展示一个包含上千个代码文件的列表。...初始实现中,直接渲染所有元素导致了严重的性能问题:页面加载缓慢、滚动卡顿,甚至造成浏览器崩溃。...,性能得到显著提升:指标传统渲染虚拟滚动提升初始加载时间1200ms150ms8倍内存占用85MB12MB7倍滚动FPS10-1555-604-6倍实践中的挑战与解决方案1....}, [measure, index]); return ( {renderItem(data)} );};总结与思考虚拟滚动是处理大量数据列表的有效解决方案...,但需要注意:适用场景:最适合相同或相似高度的项目,动态高度会增加复杂性权衡考虑:虚拟滚动增加了代码复杂度,应在真正需要时使用渐进增强:可以先实现固定高度版本,再扩展支持动态高度在CodeBuddy项目中
列表框会拥有一个垂直滚动条 ,在列表框不能够显示所有项时显示。...,只在单选模式下有效 LB_GETHORIZONTALEXTENT 获取水平滚动条的宽度 LB_GETITEMDATA 获取与指定列表项相关的程序的自定义值(长度为32位) LB_GETITEMHEIGHT...在多选模式下,设置给定索引值的矩形设置为焦点矩形,如果该值没有显示,那么滚动条将会自动滚动到相应行 LB_SETCOLUMNWIDTH 在多列模式下设置所有项的的列宽,使用这个消息必须保证列表框有LBS_MULTICOLUMN...设置水平滚动条的宽度,当列表框的宽度不足以显示所有项的时候,滚动条出现,否则隐藏 LB_SETITEMDATA 设置特定项的值 LB_SETITEMHEIGHT 设置列表项的宽。...列表框向其父窗口发送的通知码为: LBN_DBLCLK 当某一项被单击时发送 LBN_ERRSPACE 当系统不能分配足够的内存来进项相应的处理时发送该通知码 LBN_KILLFOCUS 当列表框中某一项失去焦点时发送
button 返回当事件被触发时,哪个鼠标按钮被点击。 clientX 返回当事件被触发时,鼠标指针的水平坐标。 clientY 返回当事件被触发时,鼠标指针的垂直坐标。...screenX 返回当某个事件被触发时,鼠标指针的水平坐标。 screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。 shiftKey 返回当事件被触发时,“SHIFT” 键是否被按下。...onmousemove 该事件将会在鼠标在元素中移动时被触发 事件对象 当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递传递进响应函数,在事件对象中封装了当前事件相关的一切信息,...比如:鼠标的坐标 键盘那个按键被按下,鼠标滚轮滚动的方向 在IE8中,响应函数被触发时,浏览器不会传递事件对象, 在IE8及以下的浏览器中,是将事件对象作为window对象的属性保存的 window.onload...但是这个属性在IE8中不兼容,所以如果需要兼容IE8,则不要使用 */ // var left=event.pageX; // var top=event.pageY;
background-repeat: 参数 参数取值范围 : no-repeat:不重复平铺背景图片 repeat-x:使图片只在水平方向上平铺...repeat-y:使图片只在垂直方向上平铺 如果不指定背景图片重复属性,浏览器默认的是背景图片向水平、垂直两个方向上平铺。...4、背景图片固定 背景图片固定控制背景图片是否随网页的滚动而滚动。如果不设置背景图片固定属性,浏览器默认背景图片随网页的滚动而滚动。...list-style-type 列表样式 不同浏览器的列表符可能不相同,可能会影响到网页,所以网页中的列表大多都是由背景图片显示。...控制用户界面的样式 八、鼠标 cursor:鼠标形状参数 CSS鼠标形状参数表: 鼠标形状:CSS代码 style="cursor:hand"
,不能通过键盘触发这个事件。...理解客户区坐标位置 含义是:鼠标指针在可视区中的水平clientX和垂直clientY坐标; 理解页面坐标位置pageX和pageY: pageX与pageY是指页面坐标的位置,与clientX和clientY...,与mousewheel事件一样,但是他的有关鼠标滚轮信息保存在detail属性中,当鼠标向前滚动时,这个属性值是-3的倍数,当鼠标滚轮向后滚动时,这个属性值是3的倍数;也可以给DOMMouseScroll...;此事件也是属于鼠标事件,因此此事件包含与光标位置中所有的属性 理解hashchange事件 HTML5中新增加了hashchange事件,以便在URL的参数列表(url中的#号后面的所有参数发生改变时通知开发人员...),在Ajax应用中,开发人员经常使用url参数列表保存状态或导航信息; 我们必须把hashchange事件添加到window对象中,然后当url参数列表只要发生变化就会调用此事件,此事件对象event
如不成功返回0 GetInstRes:该方法在图像列表中调入指定的位图,光标或图标资源 GetMaskBitmap:可获得包含图像列表中所有掩码的位图句柄 GetResource:在图像列表中调入指定位图...,列表视图添加字符串到查找字符串,并查找匹配的项 IsEditing:判断当前用户是否正在对项目进行操作 Scroll:可通过水平像素和垂直像素滚动列表视图的内容 SelectAll:选择所有的项目...该事件只有在OwnerData属性为True时才有效 OnDataHint:当列表视图的内容变化(如用户滚动列表视图)时发生 OnDataStateChange:当项目的范围改变状态时发生。...DockSite:指定组件是否成为拖动停放操作的目标 FixedOrder:为真时,可以通过鼠标的拖动重新排列TcoolBar中的区,但不能改变原来的顺序 FixedSize:确定TcoolBar...事件 OnScroll:当滚动时触发 TCommBoBoxEx 属性 DropDownCount:下拉列表中项目的最多个数 Images:为下拉列表中的项目选择图片 ItemHeight
当存在水平滚动的偏移时, 这个值包含了水平滚动的偏移. Touch.pageY 触点相对于HTML文档上边沿的的Y坐标. 当存在垂直滚动的偏移时, 这个值包含了垂直滚动的偏移....Touch.target 当这个触点最开始被跟踪时(在 touchstart 事件中), 触点位于的HTML元素....哪怕在触点移动过程中, 触点的位置已经离开了这个元素的有效交互区域, 或者这个元素已经被从文档中移除....,返回鼠标指针相对于文档的水平坐标 pageY 触发鼠标事件时,返回鼠标指针相对于文档的垂直坐标 screenX 触发事件时,返回鼠标指针相对于屏幕的水平坐标 screenY 触发事件时,返回鼠标指针相对于屏幕的垂直坐标...offsetX 返回鼠标指针相对于目标元素边缘位置的水平坐标 offsetY 返回鼠标指针相对于目标元素边缘位置的垂直坐标 movementX 返回鼠标指针相对于上一个mousemove事件位置的水平坐标
(垂直滚动条),ScrollBars.Both(水平和垂直滚动条)。...当执行进程时,进度条用系统突出显示颜色在水平栏中从左向右进行填充。进程完成时,进度栏被填满。...HScrollBar 在工具箱中的图标是,VScrollBar控件在工具箱中的图标是。这两 个控件主要用于在应用程序或控件中水平或垂直滚动,以方便在较长的列表中或大量信息中 转移。...(2)Value属性:用于设置或返回滑块在滚动条中所处的位置,其默认值为0。当滑块 的位置值为最小值时,滑块移到水平滚动条的最左端位置,或移到垂直滚动条的顶端位置。...其 中 SmallChange属性用于控制当鼠标单击滚动条两边的箭头时,滑块滚动的值,即 Value属性 增加或减小的值。而LargeChange属性则控制当用鼠标直接单击滚动条时滑块滚动的值。
Spin Box(浮点型数字调整框)、Time Edit(时间)、Data Edit(日期)、Data/Time Edit(时间和日期)、Dial(罗盘)、Horizontal Scroll Bar(水平滚动条...)、Vertical Scroll Bar(垂直滚动条)、Horizontal Slider(水平滑动条)、Vertical Slider(垂直滑动条)、Key Sequence Edit(快捷方式)。...sizePolicy属性 sizePolicy属性用于说明组件在布局管理中的缩放方式,当部件没有在布局管理器中时,该设置无效。...:鼠标轮滚动获取焦点。...,在Qt Designer中可以通过属性acceptDrops设置部件是否接受鼠标拖放事件。
(不包括被积木分类菜单遮住的部分),随着滚动条的滚动,可视工作区中的内容在变化,但是可视工作区整体的宽度/高度是不变的。...积木分类菜单 左侧积木分类列表的菜单 积木弹出列表 点击积木分类菜单才弹出的积木块列表,宽度固定为250 工作区坐标 工作区有一个坐标系,积木放置的位置都是在这个坐标系中。 1.3....滚动条位置 示例中把积木区垂直滚动条移动到了工作区左侧,其主要实现方式为重写scratch-blocks/scrollbar.js中的方法,重写后的方法如下。...即:积木块不能拖动超出可视工作的上/左边界。重写后的方法如下。 4.1....其主要思想是:在鼠标拖动事件的移动距离计算方法中,重新计算移动距离 // 重新拖动距离方法 ScratchBlocks.Gesture.prototype.updateDragDelta_ = function
前言其实想要实现功能很简单,就是在一张图片上监听鼠标滑轮滚动的事件,然后根据上滚还是下滚实现图片的缩放。...实现思路在js中,onmousewheel是鼠标滑轮滚动事件,可以通过这个事件触发来改变图片的大小,实现图片放大缩小功能。但是我们这里是vue所以使用的是:mousewheel。...,显而易见动动鼠标滚轮就能触发事件,但是用光标拖拽滚动条就不能触发事件。...但是,这些值的数量在不同浏览器之间的意义并不相同。详情见以下解释。IE和Opera (Presto)仅支持属性和do不支持水平滚动。这wheelDeltaX属性值指示沿水平轴的属性值。...在页面有滚动条的时候,滚动条会随着鼠标滚轮滚动而滚动,这是浏览器的默认行为,可用return false来取消浏览器的默认行为。有火狐鼠标滚轮兼容问题。
前言我们在日常使用各种桌面软件时,当我们想要搜索一个内容时,都会出现一个列表框,供我们选择,如下图:图片Tkinter提供了列表框(Listbox)控件来实现类似的功能。...Listbox控件列表框,即 Listbox。在使用 Tkinter 进行 GUI 编程的过程中,如果需要用户自己进行选择时就可以使用列表框控件。...列表框中的选项可以是多个条目,也可以是单个唯一条目,但常用于多个条目。...size()返回 Listbox 组件中选项的数量xview(*args)该方法用于在水平方向上滚动 Listbox 组件的内容,一般通过绑定 Scollbar 组件的 command 选项来实现。...,默认值是 Falsetakefocus指定该组件是否接受输入焦点(用户可以通过 tab 键将焦点转移上来),默认值是 Truexscrollcommand为 Listbox 组件添加一条水平滚动条,将此选项与
本文介绍利用QListWidget和QSS样式表制作的一个水平滑动列表的示例。...); 设置列表从左往右排列 view->setFlow(QListView::LeftToRight); 屏蔽水平与垂直的滑动条 view->setHorizontalScrollBarPolicy...(Qt::ScrollBarAlwaysOff); view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 设置为像素滚动 view->setHorizontalScrollMode...(QListWidget::ScrollPerPixel); 设置鼠标左键拖动 QScroller::grabGesture(view,QScroller::LeftMouseButtonGesture...*/ view->setHorizontalScrollMode(QListWidget::ScrollPerPixel); /* 设置鼠标左键拖动 */ QScroller
,repet-y垂直方向上铺,no-repeat不重复 background-attachment: fixed(不随滚动条滚动),scroll(随着滚动条滚动); background-position...*/ a:active {color:#0000FF;} /* 鼠标点击时 */ 列表属性 list-style 简写属性。...用于把所有用于列表的属性设置于一个声明中 list-style-image 将图象设置为列表项标志。 list-style-position 设置列表中列表项标志的位置。...sticky(粘性定位),基于用户滚动位置来定位,在未滚动出目标区域时,它的行为就像position:relative;它的表现就像 position:fixed;,它会固定在目标位置。...left right none 布局-水平&垂直对齐 要水平居中对齐一个元素(如 ), 可以使用 margin: auto; 文本在元素内居中对齐,可以使用 text-align: center; 导航栏
Align:------图片和当前文字的对齐方式(top--顶端 bottom--底部 middle—中部 left—左对齐 right—右对齐) 29 30 标签:水平分隔线...31 32 列表: 33 无序列表: 34 35 36 37...direction----滚动方向:up、down、left、right 58 Onmouseover---当鼠标停在上面的时候触发 59 OnmouseOut...实现框架页面的链接 90 1、设计好框架集页面,为每个框架窗口定义好名称 91 92 2、设置导航栏中的超链接的...(默认值)) 98 _parent (在上一级窗口打开) 99 _top (在整个浏览器窗口打开
触发鼠标事件的区域 盒子模型中的border,padding,content区域会触发鼠标事件,点击margin区域将不触发鼠标事件。 2....鼠标事件对象MouseEvent下的属性 [a]. evt.pageX/Y :以页面左上角为参考点,表示当前触发点离页面左上角的水平和垂直距离。 注意:1....页面左上角并不是指html或body标签的盒子模型border外边框的左上角,而是document的左上角,是不能通过css来调整位置的。 [b]. ...HTMLElement.scrollLeft/Top :元素水平、垂直滚动条切去的宽度或高度。...注意:FF在W3C标准模式下,document.documentElement.scrollLeft/Top获取页面滚动条切去的部分;W3C怪异模式下,则采用body.scrollLeft/Top来获取
body主体标签 background="设置背景图片" bgproperties="fixed(背景永远跟随鼠标滑动)" bgcolor="设置背景底色" text="设置字体颜色" leftmargin..." align="见下表"> align常用属性值 top:文字的中间线在图片上方 middle:文字的中间线在图片中间 bottom:文字的中间线在图片底部 left...:图片在文字的左侧 right:图片在文字的右侧 absbottom:文字的底线在图片底部 absmiddle:文字的底线在图片中间 baseline:英文文字基准线对齐...滚动文字 direction="滚动方向" behavior="滚动方式" loop="滚动次数" scrollamount...="滚动速度" scrolldelay="滚动间隔" bgcolor="滚动区域背景颜色" width="长度" height="高度" hspace="
,即为元素设定的高度和宽度,如果出现滚动条,滚动条会遮盖元素的宽高,那么该属性就是其本来宽高减去滚动条的宽高,包含内边距,但不包括水平滚动条、边框和外边距。...当一个元素的内容没有产生垂直方向的滚动条,那么它的 scrollTop 值为0。 8.Window.scrollX 返回文档/页面水平方向滚动的像素值。...参数说明: stop(可选):一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。...字符串中的第一个字符的索引为 0。 length(可选):在返回的子字符串中应包括的字符个数。 如果 length 为 0 或负数,将返回一个空字符串。...返回值为一个 long 整数,请求 ID ,是回调列表中唯一的标识。是个非零值,没别的意义。你可以传这个值给 window.cancelAnimationFrame() 以取消回调函数。
1).使用id选择器,要求id在网页中必须具有唯一性。在CSS文件中的语法为:#id名称{属性:值}。 2).使用类选择器,自己定义样式后,可以应用给一个或多个元素,一般用于定义重复的样式。...在实际的工作中,我们用到了哪些标签,就给那些标签进行重置内外边距。...] 背景图像的依附方式 background-attachment:[scroll ,fixed] 注:背景图像,默认情况下是进行水平和垂直位置上的平铺,默认在盒子的左上方显示。...auto(在必须时对象内容才会被裁切或显示滚动条) hidden(不显示超过对象尺寸的内容) scroll(总是显示滚动条) 2.Zoom...3.cursor:用来改变鼠标的样式 可以自己定义鼠标的图像,格式为:style="cursor:url(图片的路径及名称)"。
在上一节中,我们在监听鼠标移动事件时,将其坐标范围处理为了[-1,1]的范围,使用如下代码document.addEventListener('mousemove',function( event )...标准坐标系我们之所以要进行上面的转换,这是因为在Three.js中Canvas画布具有一个标准设备坐标系,该坐标系的坐标原点在canvas画布的中间位置,x轴水平向右,y轴竖直向上。...pageX:鼠标点击位置相对于网页左上角的水平偏移量,也就是 clientX + 水平滚动条滚动的距离。...clientX:鼠标点击位置相对于浏览器可视区域的水平偏移量(不会计算水平滚动的距离)。 clientY:鼠标点击位置相对于浏览器可视区域的垂直偏移量(不会计算垂直滚动的距离)。...offsetX:鼠标点击位置相对于触发事件对象的水平距离。 offsetY:鼠标点击位置相对于触发事件对象的垂直距离。