还有赠送了一个外机模型,和真机等重量的。
所有由罗佳(博主)发布的文章
买了个violin
取名为varlet
[Javascript]触摸拖动事件
(function(){
var extendEventDefaultOpt={
touchdrag:{
preventDefault:true,//阻止触摸移动的默认行为
allowMultiTouch:false//允许在多点触控时也触发这个事件
}
}
window.extendEvent={//扩展事件
touchdrag:function(element,opt){
var stats={},opt=Object.assign({},extendEventDefaultOpt.touchdrag,opt);
element.addEventListener('touchstart',function(e){
if(!opt.allowMultiTouch && e.changedTouches.length>1){stats={};return;}
var ct=e.changedTouches;
for(var t=ct.length;t--;){
stats[ct[t].identifier]={x:ct[t].clientX,y:ct[t].clientY};
}
});
element.addEventListener('touchmove',function(e){
if(!opt.allowMultiTouch && e.touches.length>1){stats={};return;}
var ct=e.changedTouches;
for(var t=ct.length;t--;){
var id=ct[t].identifier;
if(!id in stats)continue;//不属于这个元素的事件
var event=new TouchEvent('touchdrag',e);
event.deltaX=ct[t].clientX-stats[id].x;
event.deltaY=ct[t].clientY-stats[id].y;
stats[id].x=ct[t].clientX;
stats[id].y=ct[t].clientY;
element.dispatchEvent(event);
}
if(opt.preventDefault)e.preventDefault();
});
element.addEventListener('touchend',function(e){
var ct=e.changedTouches;
for(var t=ct.length;t--;){
var id=ct[t].identifier;
if(id in stats)delete stats[id];
}
});
}
}
})();
这是我做的一个自定事件,在其Event对象上会带有deltaX和deltaY两个属性以表示触摸拖动的偏移量。
用法是
extendEvent.touchdrag(元素,选项Object) //在元素上启用这个自定义事件
选项object的属性见上面源码里`extendEventDefaultOpt` 对象的两个属性。
然后当手指在元素上拖动的时候就会触发touchdrag事件。
继续阅读[Javascript]触摸拖动事件
[Javascript]判断是否为触摸操作模式
写了段代码可以用来识别用户的操作方式是否为触摸。
首先需要给元素加一个便于批量添加事件的on方法(我自认为这么写没什么毛病
(function(){
function Extent_On_Event(){
if(arguments[0] instanceof Array){
var arg=arguments,es=arguments[0];
es.forEach(function(e){
arg[0]=e;
this.addEventListener.apply(this,arg);
});
}else{
this.addEventListener.apply(this,arguments);
}
return this;
};
(window.EventTarget||window.Node).prototype.on=Extent_On_Event;
if(!window.on)Window.prototype.on=Extent_On_Event;
})();
然后定义判断触摸模式的代码
//touchMode
(function(){
var isTouchMode=window.touchMode=('ontouchstart' in window);
var mouseEventRec=0;
function touchModeEvent(node){
node.on(['touchstart','touchend','touchmove'],function(){
mouseEventRec&&(mouseEventRec=0);
if(isTouchMode)return;
isTouchMode=window.touchMode=true;
var e=new Event('touchModeChange');
e.touchMode=isTouchMode;
window.dispatchEvent(e);
});
node.on('mousemove',function(){
if(!isTouchMode)return;
mouseEventRec++;
if(mouseEventRec>4){
isTouchMode=window.touchMode=false;
var e=new Event('touchModeChange');
e.touchMode=isTouchMode;
window.dispatchEvent(e);
};
});
}
touchModeEvent(window);
})();
这段代码的作用
- 在`window` 对象上定义touchMode变量,值为boolean,为true时是触摸模式,为false时是非触摸模式(大概就是鼠标模式)。如果你不希望出现此变量,删除相关赋值代码即可。
- 模式变动时在`window` 对象上触发`touchModeChange` 事件,event对象的touchMode属性为变动后的值。
在支持触摸的设备上,touchMode默认为true,移动鼠标后会转变为false。我认为这个地方是有点毛病的,但是不知道如何正确判断初始状态。
对于阻止以上代码中事件冒泡到window的元素,需要额外执行相关的监听代码以保证正确性。
【画】⑨送给过光棍节的自己
【书签】视频变速
用来把页面上播放的HTML5视频变速,以节省看番时间或者达到慢放暂停看福利的效果。
javascript:var v=document.querySelector('video'),s=prompt('倍度',v.playbackRate);v.playbackRate=Number(s);
保存成书签在视频页点击即可。
Wacom Intuos CTH-690/K
才发现以前当图床用的点点博客已经挂了。。。博客外链图挂了一堆,恢复了几篇找得到图的博文,剩下的。。。
OSU mengsky源下图代码
2017/8/28 更新:mengsky已死,如果网络环境连血猫速度快的话可以继续用血猫,否则建议使用代理直接从官网下载。
mengsky源使用的是七牛服务,速度非常快,推荐天朝用户使用。
代码:
javascript:try{window.location="http://osu.mengsky.net/api/download/"+$(".beatmapDownloadButton")[$(".beatmapDownloadButton").length-1].querySelector("a").href.match(/\d+$/)[0];}catch(e){alert("未登录或不在下载页面");}
使用方法见血猫下图代码设置
为WordPress用户登录添加两步验证
[Javascript]stringHider
我按照http://ucren.com/blog/archives/549 的思路把字符串转换成零宽字符穿,但是不限代码,可以用来转换任意字符串
项目地址:https://github.com/JiaJiaJiang/stringHider
在线工具:https://jiajiajiang.github.io/stringHider/
============2018/10/14更新===========
修复了无法转换ascii码表以外字符的bug
(开始学lua
[Javascript]toDataURI小工具
便于发车的小工具
地址:https://github.com/JiaJiaJiang/toDataURI
选择文本或者文件模式,填好内容或者选择文件
可自定义Content type,一般空着就好
然后点转换。
即可发车。
转换结果让别人粘贴在浏览器地址栏即可。
[Javascript]简易图片对比
Demo:http://pages.luojia.me/image-diff/
用于对两张图片进行像素对比,相同的像素结果为白色,不同的像素结果为黑色。
做这个东西是因为某群在讨论QQ的火炬传递页面到底有没有藏什么东西,为了证明它们真的是一模一样的图片,我就做了这东西。。。
我想画幅画贴上来,可是画了一半发现不好看,就不贴上来了。
我想唱首歌贴上来,但是找不到感觉,还是不唱了。
我想用GUItar弹首歌发上来,但是老弹错,还是不发了。
于是这个月的博文可能就要废了