今天在开发过程中遇到了一个神奇的问题,产品提了一个需求要求在鼠标移动过程中实现侧边工具的显示和鼠标点击过程中实现工具栏的显示和隐藏,也在一段时间内鼠标没有任何操作的时候隐藏工具栏。
因为我用的开发框架是angular,所以我用angular封装了一个指令,来实现上述的需求:
代码如下:
angular.module('pexapp').directive('idleTimer', function($interval) {
'use strict';
return {
link: function(scope, element, attrs) {
var interval = parseInt(attrs.interval) || 500;
var idleAfter = parseInt(attrs.idleAfter) || 5000;
var idleTime = 0;
var disableCheck = attrs.disableIdle;
var state;
var count = 0;
var timeStamp;
element.on('mousemove', function() {
console.log("mouse move");
idleTime = 0;
state = 'active';
element.removeClass('idle');
});
element.on('click', function() {
count++;
if(state === 'active' && count %2 === 1 ) {
state = 'idle';
element.addClass('idle');
} else if (state === 'idle' && count %2 =&