Saber 酱的抱枕

Fly me to the moon

12/18
2015
学习

js自定义鼠标双击事件以及对其的一些思考

昨天在做图的痛苦煎熬中,忽然脑子一抽想到了鼠标双击事件(看啊,我不得不思考代码以减轻做图的痛苦了。可见做图是多么惨无人道的事情)。于是鼓捣了两个玩意出来。

第一个代码是自定义鼠标双击事件。我们知道,JavaScript的鼠标双击事件(ondblclick)的判定时间是有阈值的。如果我们想自己定义,例如必须间隔在200毫秒以内才算双击,又比如想把时间间隔延长到1000毫秒。这时候可以自己设置时间阈值,满足条件就执行事件代码:

var click0=null;//第一次点击的时间戳
var clickTimeOut=500;//自定义允许的时间间隔
document.onclick=function  () {
	var d=new Date();
	if(click0==null){
		click0=d.getTime();
	}else{
		if(d.getTime()-click0>clickTimeOut){
			//console.log("不是双击");
			click0=d.getTime();
		}else{
			console.log("一次双击");
			click0=null;//初始化
		}
	}
}

这个和浏览器的判定应该是一样的了(至少从结果来看)。这也是数次修改之后的结果,改进的地方有(完全可以不看):

1.把相邻两次单击进行判断。例如鼠标点击了3次,第1次和第2次的间隔超时,第2次和第3次间隔在规定时间内。可以把第2和第3次点击识别为双击,而不是必须1、2判断一次,3、4再判断一次。

2.但是当一次双击事件触发之后,必须再进行至少两次单击才可以触发双击判定。例如3次单击间隔都在规定范围内,在把第1次和第2次识别为双击之后,不会把第3次和第2次连起来,认为又是一次双击。
Read More →

js自定义鼠标双击事件以及对其的一些思考

12/17
2015
软件

一键关闭显示器软件

我办公电脑的显示器没有关闭按钮。

右下角唯一一个按钮(还带的有绿色的指示灯),是用来自动调节显示器的。

当我再三确认了这个事实之后,我的三观受到了极大的冲击。

还好软件可以帮我们解决问题,亲测有效。

软件下载页面

台式机笔记本通用。关闭显示器之后就是“无信号”状态,不是用黑屏来自欺欺人。随便动动鼠标键盘就可以再开启显示器。更多设置自己看吧。

一键关闭显示器软件

12/16
2015
学习

windows server 2003中MySQL服务消失的解决办法

早上登上服务器发现服务器异常重启了,当时也没在意,不料过一会儿登陆网站后台发现登陆不进去,也没有任何错误提示。凭经验感觉是数据库连接出了问题,到管理工具的“服务”里看了看,MySQL这个服务竟然消失不见了,真是神奇。谷歌了一下,解决办法就是重新安装MySQL服务。

首先用命令行定位到mysql文件夹中的bin目录,然后输入以下命令:

mysqld.exe -install //mysql5.1及以上版本版本
mysqld-nt.exe -install //mysql5.0

当出现提示“Service successfully installed. ”之后再去服务里面刷新,就可以看到MySQL服务了。开启服务之后问题就解决了。

附图:

使用cmd安装mysql服务

windows server 2003中MySQL服务消失的解决办法

12/12
2015
其他

【记录】【SX MS】关于某不科学的vs2015下载报错

鉴于网络原因,我们需要以/layout命令下载完整的vs2015 express for desktop的安装包。

但是最后会报错vcsecondaryinstaller box(类似)什么的下载失败。

仔细翻log发现,是sdk下载报错。

可是sdk明明下好了啊!

然而给sdk的exe加/layout下载时却直接提示你不能用这个程序下载。

…………………………

经过搜索,发现下载完成的sdk安装包再次/layout时便会抛出该错误……

你可能想,那我删掉一个文件就好。

结果你在文件夹里翻来覆去地折腾都没用。

直到你删除了本该没什么用的UserExperienceManifest.xml

……………………………………SX MS

【记录】【SX MS】关于某不科学的vs2015下载报错

12/8
2015
学习

javascript 函数劫持

以JavaScript中的alert()函数为例,改变它的功能。

var _alert=window.alert;
window.alert=function (s) {
  if (arguments[0].indexOf("萝莉")>=0) {   
    _alert("快看 有小萝莉!");   
  }else{
    _alert("没有萝莉,拒绝执行");   
  };
}
alert("萝莉控");
alert("御姐控");

功能怎么改自然可以随意来,也可以改成压根就不弹。

javascript 函数劫持

12/5
2015
学习

用视频做为页面背景

<video id="homevideo" autoplay="" loop="">
    <source id="video_s" src="/f/nico.flv" type="video/mp4">
</video>
<style>
	#homevideo{position: absolute;top: 0;left: 0;z-index: -999;width: auto;height: 100%;}
</style>

以前见过,现在自己做了个。查看效果

没什么技术含量,不过视频需要绝对定位,所以就要注意父元素有没有定位属性。其他的css修改,例如去掉body背景图,修改文字颜色等看情况,需要的话再改。

用视频做为页面背景

12/3
2015
学习

使用js打印评分

四星:
二星:
三星:
零星:

<div class="rating" date-rating="4">四星:</div>
<div class="rating" date-rating="2">二星:</div>
<div class="rating" date-rating="3">三星:</div>
<div class="rating" date-rating="0">零星:</div>
<script type="text/javascript">
  function getRating(rating) {
      if(rating > 5 || rating < 0) throw new Error('数字不在范围内');
      return '★★★★★☆☆☆☆☆'.substring(5 - rating, 10 - rating );
  }
  var ratingwrap=document.getElementsByClassName("rating");
  for (var i = 0; i < ratingwrap.length; i++) {
    ratingwrap[i].innerHTML=getRating(ratingwrap[i].getAttribute("date-rating"));
  };
</script>

前几天在知乎上看到了一些巧妙的JavaScript代码,这个单独记录一下。设想满星5星的评分(也可以是10星,自己改代码),用js截取字符打印出评分。

我们一般的思路是先打印实心星星,然后补满空心星星。然而这个代码(getRating函数)把实心星星和空心星星放一起,一次截取完成。突破性的思维,令人不得不惊叹。

如果有半分制,又该怎么做呢?

嗯,似乎还找不到半实心半空心的五角星字符 ←_←

使用js打印评分