mirror of https://github.com/layui/layui
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
5.4 KiB
191 lines
5.4 KiB
<!DOCTYPE html> |
|
<html> |
|
<head> |
|
<meta charset="utf-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
|
<title>util 组件 - layui</title> |
|
|
|
<link rel="stylesheet" href="../src/css/layui.css"> |
|
|
|
<style> |
|
body{padding: 50px;} |
|
</style> |
|
</head> |
|
<body> |
|
|
|
<button class="layui-btn" lay-on="e1">事件1</button> |
|
<button class="layui-btn" lay-on="e2">事件2</button> |
|
<button class="layui-btn" lay-on="e3">事件3</button> |
|
<button class="layui-btn" lay-active="e4">hover: active - 事件4</button> |
|
<button class="layui-btn" lay-active1="e4">hover: active1 - 事件4</button> |
|
|
|
<br><br> |
|
|
|
<div id="ID-util-on-test"> |
|
<button class="layui-btn" lay-on="e1">新的容器 - 事件1</button> |
|
<button class="layui-btn" lay-on="e5">新的容器 - 事件5</button> |
|
</div> |
|
|
|
<hr> |
|
|
|
<div id="test"></div> |
|
|
|
<hr> |
|
|
|
<div id="test1"></div> |
|
|
|
<hr> |
|
|
|
请编辑格式: |
|
<div class="layui-inline"> |
|
<input type="text" value="yyyy-MM-dd HH:mm:ss" class="layui-input" id="test2"/> |
|
</div> |
|
<span class="layui-word-aux" id="test3"></span> |
|
|
|
<hr> |
|
|
|
<div id="target-test" style1="position: relative; height: 300px; overflow: auto;"> |
|
1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br> |
|
</div> |
|
|
|
<script src="../src/layui.js"></script> |
|
<script> |
|
layui.use(['lay', 'util', 'layer'], function(){ |
|
var $ = layui.$; |
|
var util = layui.util; |
|
var layer = layui.layer; |
|
var lay = layui.lay; |
|
|
|
// 固定块 |
|
util.fixbar({ |
|
bars: [{ // 定义可显示的 bar 列表信息 -- v2.8.0 新增 |
|
type: 'share', |
|
icon: 'layui-icon-share' |
|
}, { |
|
type: 'help', |
|
icon: 'layui-icon-help' |
|
}, { |
|
type: 'cart', |
|
icon: 'layui-icon-cart', |
|
style: 'background-color: #FF5722;' |
|
}, { |
|
type: 'groups', |
|
content: '群', |
|
style: 'font-size: 21px;' |
|
}], |
|
// bar1: true, |
|
// bar2: true, |
|
// default: false, 是否显示默认的 bar 列表 -- v2.8.0 新增 |
|
// bgcolor: '#393D52', // bar 的默认背景色 |
|
// css: {right: 100, bottom: 100}, |
|
// target: '#target-test', // 插入 fixbar 节点的目标元素选择器 |
|
// duration: 300, // top bar 等动画时长(毫秒) |
|
on: { // 任意事件 -- v2.8.0 新增 |
|
mouseenter: function(type){ |
|
layer.tips(type, this, { |
|
tips: 4, |
|
fixed: true |
|
}); |
|
}, |
|
mouseleave: function(type){ |
|
layer.closeAll('tips'); |
|
} |
|
}, |
|
// 点击事件 |
|
click: function(type){ |
|
console.log(this, type); |
|
// layer.msg(type); |
|
} |
|
}); |
|
|
|
|
|
// 批量处理事件 |
|
util.on({ |
|
e1: function(othis){ |
|
alert(othis.html()) |
|
}, |
|
e2: function(othis){ |
|
alert(othis.html()) |
|
} |
|
}); |
|
|
|
// Test: 事件集的替换和增加 |
|
util.on({ |
|
e1: function(othis){ // 重置事件 e1 |
|
alert(othis.html() + ' - replace') |
|
}, |
|
e3: function(othis){ // 增加事件 e3 |
|
alert(othis.html()) |
|
} |
|
}); |
|
|
|
// 自定义触发事件的元素属性名、自定义触发事件的方式 |
|
util.on('lay-active', { |
|
e4: layui.throttle(function(othis) { |
|
layer.tips(othis.html(), this, { tips: 3 }); |
|
}, 3000), // 3s 内不重复执行 |
|
e5: function() { |
|
console.log(111); |
|
} |
|
}, { |
|
trigger: 'mouseenter' |
|
}); |
|
// Test: 不同属性、相同值 |
|
util.on('lay-active1', { |
|
e4: function(othis) { |
|
this.innerHTML = 'hover: '+ (Math.random()*100000 | 0); |
|
} |
|
}, { |
|
trigger: 'mouseenter' |
|
}); |
|
|
|
// 自定义触发事件的委托元素 |
|
util.on({ |
|
// 此处与委托在 body 上的事件共用了 e1 名称,以测试事件冒泡 |
|
e1: function(othis, e){ |
|
this.innerHTML = 'click: '+ (Math.random()*100000 | 0); |
|
layui.stope(e); // 阻止事件冒泡 |
|
}, |
|
e5: function(othis) { |
|
this.innerHTML = 'click: '+ (Math.random()*100000 | 0); |
|
} |
|
}, { |
|
elem: '#ID-util-on-test' |
|
}); |
|
|
|
|
|
// 倒计时 |
|
var countdown = util.countdown({ |
|
date: '2099-12-31 00:00:00', // 目标时间值 |
|
now: new Date(), // 当前时间,一般为服务器时间,此处以本地时间为例 |
|
ready: function(){ // 初始操作 |
|
clearTimeout(util.countdown.timer); // 清除旧定时器,防止多次渲染时重复执行。实际使用时不常用 |
|
}, |
|
clock: function(obj, inst){ // 计时中 |
|
var str = [obj.d,'天',obj.h,'时',obj.m,'分',obj.s,'秒'].join(' '); |
|
lay('#test').html(str); |
|
util.countdown.timer = inst.timer; // 记录当前定时器,以便在重复渲染时清除。实际使用时不常用 |
|
}, |
|
done: function(obj, inst){ // 计时完成 |
|
layer.msg('Time is up'); |
|
} |
|
}); |
|
|
|
// 某个时间在当前时间的多久前 |
|
var str = util.timeAgo(new Date(2017,7,15,2,58,0)); |
|
$('#test1').html('示例写于:'+ str); |
|
|
|
// 转换日期格式 |
|
var timer = null |
|
var toDateString = function (format) { |
|
var dateString = util.toDateString(new Date(), format); |
|
$('#test3').html(dateString) |
|
} |
|
timer = setInterval(() => { |
|
toDateString($('#test2').val()) |
|
}, 50) |
|
|
|
}); |
|
</script> |
|
</body> |
|
</html>
|
|
|