难度系数:简单关键词:length outerHeight position
前言
案例很简单,但是对于初学者可以延伸学习下jquery的相关知识点:
- 判断选择的元素是否存在用
length
; - 获取元素的高度height()与outerHeight()的异同;
- 判断元素位置position()与offset()的异同。
应用场景:
在做动态创建目录的时候,选择的条目不在可视区域,如图:
默认情况滚动条都是在最上面的,导致超出可视区域的选择条目没有呈现在可视区域,因此要脚本处理下。代码很简单,如下:
设置父容器相对定位
ul{
postion:relative;
}
动态创建完dom结构后调用函数
function setSelectedInView(){
$('.J-item.selected').each(function(){
var $this = $(this);
if($this.length > 0){
var $item = $this.parent(),
itemHeight = $item.outerHeight(),
itemTop = $item.position().top;
var $container = $item.parent('.J-items'),
containerHeight = $container.height();
// 如果该条目元素相对于父级的位置超出可视框高度,设置滚动条
if(itemTop > containerHeight){
$container.scrollTop(itemTop - containerHeight + itemHeight);
}
}
})
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。