优化 util 组件重构后的若干功能细节
This commit is contained in:
parent
86816ea6f5
commit
b3d08bd130
@ -20,11 +20,18 @@ layui.define('jquery', function(exports){
|
|||||||
target: 'body', // fixbar 的插入目标选择器
|
target: 'body', // fixbar 的插入目标选择器
|
||||||
bars: [], // bar 信息
|
bars: [], // bar 信息
|
||||||
default: true, // 是否显示默认 bar
|
default: true, // 是否显示默认 bar
|
||||||
showHeight: 200 // 出现 top bar 的滚动条高度临界值
|
showHeight: 200, // 出现 top bar 的滚动条高度临界值
|
||||||
|
duration: 200 // top bar 等动画时长(毫秒)
|
||||||
}, options);
|
}, options);
|
||||||
|
|
||||||
|
// 目标元素对象
|
||||||
var $target = $(options.target);
|
var $target = $(options.target);
|
||||||
|
|
||||||
|
// 滚动条所在元素对象
|
||||||
|
var $scroll = options.scroll
|
||||||
|
? $(options.scroll)
|
||||||
|
: $(options.target === 'body' ? $doc : $target)
|
||||||
|
|
||||||
// 是否提供默认图标
|
// 是否提供默认图标
|
||||||
if(options.default){
|
if(options.default){
|
||||||
// 兼容旧版本的一些属性
|
// 兼容旧版本的一些属性
|
||||||
@ -64,9 +71,13 @@ layui.define('jquery', function(exports){
|
|||||||
elemBar.on('click', function(){
|
elemBar.on('click', function(){
|
||||||
var type = $(this).attr('lay-type');
|
var type = $(this).attr('lay-type');
|
||||||
if(type === 'top'){
|
if(type === 'top'){
|
||||||
$('html,body').animate({
|
(
|
||||||
|
options.target === 'body'
|
||||||
|
? $('html,body')
|
||||||
|
: $scroll
|
||||||
|
).animate({
|
||||||
scrollTop : 0
|
scrollTop : 0
|
||||||
}, 200);
|
}, options.duration);
|
||||||
}
|
}
|
||||||
typeof options.click === 'function' && options.click.call(this, type);
|
typeof options.click === 'function' && options.click.call(this, type);
|
||||||
});
|
});
|
||||||
@ -101,7 +112,7 @@ layui.define('jquery', function(exports){
|
|||||||
if(elemTopBar){
|
if(elemTopBar){
|
||||||
var lock;
|
var lock;
|
||||||
var setTopBar = (function setTopBar(){
|
var setTopBar = (function setTopBar(){
|
||||||
var top = $doc.scrollTop();
|
var top = $scroll.scrollTop();
|
||||||
if(top >= options.showHeight){
|
if(top >= options.showHeight){
|
||||||
lock || (elemTopBar.show(), lock = 1);
|
lock || (elemTopBar.show(), lock = 1);
|
||||||
} else {
|
} else {
|
||||||
@ -113,7 +124,7 @@ layui.define('jquery', function(exports){
|
|||||||
|
|
||||||
// 根据 scrollbar 设置 fixbar 相关状态
|
// 根据 scrollbar 设置 fixbar 相关状态
|
||||||
var timer;
|
var timer;
|
||||||
$doc.on('scroll', function(){
|
$scroll.on('scroll', function(){
|
||||||
if(!setTopBar) return;
|
if(!setTopBar) return;
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
timer = setTimeout(function(){
|
timer = setTimeout(function(){
|
||||||
|
Loading…
Reference in New Issue
Block a user