导航:首页 > 编程语言 > js飘动qq

js飘动qq

发布时间:2023-12-18 11:02:54

『壹』 js如何调用本地应用程序

一般情况下,浏览器中是无法直接和本机的其他的程序进行交互的,在IE中,我们可以通过ActiveX对象的方式进行。但是这个方式只适用于IE浏览器,另一种比较通用的方式便是URL协议的方式,我们将某种URL的协议注册给某个程序来进行处理,比如将tencent://这样的协议注册给qq程序来进行处理,当浏览器需要访问这样的协议的时候就转给QQ程序进行处理。这种URL协议的方式是可以跨平台的,比如在Windows上你需要添加注册表项。

首先先看看js应该如何调用qq客户端。
window .open(" tencent://message/?uin=346915968 ")
window.open顾名思义,打开。Tencent就不用多说了吧 BAT之T。上述能直接打开qq帐号对应的对话框。由此可以知道网页上的在线客服功能是如何实现了吧。
那要是不需要打开对话框,就想要登陆qq应该如何实现呢?很简单呀:
window .open(" tencent://message/?uin=qq ") 不过调用应用这种跟黑客没什么差别的行为,浏览器一般都是禁止的,

选择允许后,

启动应用,qq客户端就会被调起。
为什么说这个呢,老板又给了个需求,想让调起qq客户端一样,想通过演示页面的一个按钮,调起售票系统的各种程序...
什么都不说了,先看看什么是自定义协议。
Pluggable Protocol,又叫URL Protocol,有时会叫Shell命令,通用的Protocol有http、ftp、mailto等,这些都是windows安装时自带的协议。
接着也实现一个简单的自己的自定义协议吧。
1,运行window,输入regedit打开注册表。 在HKEY_CLASSES_ROOT下面建一个自己起的名字的表。

用如下格式把各项值添上:

js打开qq音乐.exe

启动应用

end.

『贰』 打开电脑qq提示javascript错误怎么解决

解决办法:

1、打开IE浏览器,在IE浏览器上方的菜单栏中找到工具项,然后选择工具项中的“Internet选项”;

『叁』 如何用javascript代码启动QQ软件

<button onclick="wsh = new ActiveXObject('WScript.Shell'); wsh.Run('file:///C:/WINDOWS/system32/cmd.exe')">这是打开CMD的 </button>

把上面CMD的路径换为QQ的路径即可,如在我内的电脑上打开QQ就是容
<button onclick="wsh = new ActiveXObject('WScript.Shell'); wsh.Run('file:///D:/Program%20Files/Tencent/qq/bin/qq.exe')">这是打开qq的 </button>

『肆』 QQ上的标签这样的效果JS怎么实现呢

jquery 加几个绑定事件
1,给下面的增加绑定事件:比如下面的都有一个class属性:tag
$(".tag").live("click",function(){
//获取当前标签的名称,然后再上面的DIV里面加入他
//将当前绑定事件解除
$(this).unbind("click").addClass("自定义一个不可点击的样式名称");
});
2.上面的标签都有一个class属性:selTag
$(".selTag").live("mouseenter",function(){//标签增加鼠标移上去事件
var selTagObj = $(this);
//显示删除按钮,这个可以用样式来实现,你做一个小图标让他的位置浮动动当前的标签右边,并且增加点击事件
$("#delImg").css("left",$(this).offset().left+标签的宽度减去图片的宽度).css("top",$(this).offset().top).css("position","absolute").unbind("click").bind("click",function(){
//删除上面的标签,同时把下面的标签置为可添加
selTagObj.remove();
$("对应下面的标签").removeClass("自定义不可点击的样式名称").bind("click",function(){
把上面的绑定事件在加上,可以写一个JS方法,两边一起调用
});
});
});

『伍』 js仿QQ中对联系人向左滑动,滑出删除按钮的操作

希望能采纳
纯js实现
使用了h5的touchmove等事件,以及用js动态改变css3的translate属性来达到动画效果:


<!DOCTYPEhtml>
<htmllang="en">

<head>
<metacharset="UTF-8">
<metaname="viewport"id="viewport"content="width=device-width,initial-scale=1">
<title>html5向左滑动删除特效</title>
<style>
*{
padding:0;
margin:0;
list-style:none;
}

header{
background:#f7483b;
border-bottom:1pxsolid#ccc
}

headerh2{
text-align:center;
line-height:54px;
font-size:16px;
color:#fff
}

.list-ul{
overflow:hidden
}

.list-li{
line-height:60px;
border-bottom:1pxsolid#fcfcfc;
position:relative;
padding:012px;
color:#666;
background:#f2f2f2;
-webkit-transform:translateX(0px);
}

.btn{
position:absolute;
top:0;
right:-80px;
text-align:center;
background:#ffcb20;
color:#fff;
width:80px
}
</style>
<script>
/*
*描述:html5苹果手机向左滑动删除特效
*/
window.addEventListener('load',function(){
varinitX;//触摸位置
varmoveX;//滑动时的位置
varX=0;//移动距离
varobjX=0;//目标对象位置
window.addEventListener('touchstart',function(event){
event.preventDefault();
varobj=event.target.parentNode;
if(obj.className=="list-li"){
initX=event.targetTouches[0].pageX;
objX=(obj.style.WebkitTransform.replace(/translateX(/g,"").replace(/px)/g,""))*1;
}
if(objX==0){
window.addEventListener('touchmove',function(event){
event.preventDefault();
varobj=event.target.parentNode;
if(obj.className=="list-li"){
moveX=event.targetTouches[0].pageX;
X=moveX-initX;
if(X>=0){
obj.style.WebkitTransform="translateX("+0+"px)";
}elseif(X<0){
varl=Math.abs(X);
obj.style.WebkitTransform="translateX("+-l+"px)";
if(l>80){
l=80;
obj.style.WebkitTransform="translateX("+-l+"px)";
}
}
}
});
}elseif(objX<0){
window.addEventListener('touchmove',function(event){
event.preventDefault();
varobj=event.target.parentNode;
if(obj.className=="list-li"){
moveX=event.targetTouches[0].pageX;
X=moveX-initX;
if(X>=0){
varr=-80+Math.abs(X);
obj.style.WebkitTransform="translateX("+r+"px)";
if(r>0){
r=0;
obj.style.WebkitTransform="translateX("+r+"px)";
}
}else{//向左滑动
obj.style.WebkitTransform="translateX("+-80+"px)";
}
}
});
}

})
window.addEventListener('touchend',function(event){
event.preventDefault();
varobj=event.target.parentNode;
if(obj.className=="list-li"){
objX=(obj.style.WebkitTransform.replace(/translateX(/g,"").replace(/px)/g,""))*1;
if(objX>-40){
obj.style.WebkitTransform="translateX("+0+"px)";
objX=0;
}else{
obj.style.WebkitTransform="translateX("+-80+"px)";
objX=-80;
}
}
})
})
</script>
</head>

<body>
<header>
<h2>消息列表</h2>
</header>
<sectionclass="list">
<ulclass="list-ul">
<liid="li"class="list-li">
<divclass="con">
你的快递到了,请到楼下签收
</div>
<divclass="btn">删除</div>
</li>
<liclass="list-li">
<divclass="con">
哇,你在干嘛,快点来啊就等你了
</div>
<divclass="btn">删除</div>
</li>
</ul>
</section>
</body>

</html>


做成zepto插件
实际项目中,我们可能有很多个地方会用到这个功能。现在我们将这个功能做成zepto插件,方便后面使用。
这个插件,我们仅实现这个功能,然后传入参数(删除按钮的样式名),让程序在js中计算所需要滑动的距离,方便复用。
zepto.touchWipe.js
/**
*zepto插件:向左滑动删除动效
*使用方法:$('.itemWipe').touchWipe({itemDelete:'.item-delete'});
*参数:itemDelete删除按钮的样式名
*/
;
(function($){
$.fn.touchWipe=function(option){
vardefaults={
itemDelete:'.item-delete',//删除元素
};
varopts=$.extend({},defaults,option);//配置选项

vardelWidth=$(opts.itemDelete).width();

varinitX;//触摸位置
varmoveX;//滑动时的位置
varX=0;//移动距离
varobjX=0;//目标对象位置
$(this).on('touchstart',function(event){
event.preventDefault();
varobj=this;
initX=event.targetTouches[0].pageX;
objX=(obj.style.WebkitTransform.replace(/translateX(/g,"").replace(/px)/g,""))*1;
if(objX==0){
$(this).on('touchmove',function(event){
event.preventDefault();
varobj=this;
moveX=event.targetTouches[0].pageX;
X=moveX-initX;
if(X>=0){
obj.style.WebkitTransform="translateX("+0+"px)";
}elseif(X<0){
varl=Math.abs(X);
obj.style.WebkitTransform="translateX("+-l+"px)";
if(l>delWidth){
l=delWidth;
obj.style.WebkitTransform="translateX("+-l+"px)";
}
}
});
}elseif(objX<0){
$(this).on('touchmove',function(event){
event.preventDefault();
varobj=this;
moveX=event.targetTouches[0].pageX;
X=moveX-initX;
if(X>=0){
varr=-delWidth+Math.abs(X);
obj.style.WebkitTransform="translateX("+r+"px)";
if(r>0){
r=0;
obj.style.WebkitTransform="translateX("+r+"px)";
}
}else{//向左滑动
obj.style.WebkitTransform="translateX("+-delWidth+"px)";
}
});
}

})
$(this).on('touchend',function(event){
event.preventDefault();
varobj=this;
objX=(obj.style.WebkitTransform.replace(/translateX(/g,"").replace(/px)/g,""))*1;
if(objX>-delWidth/2){
obj.style.transition="all0.2s";
obj.style.WebkitTransform="translateX("+0+"px)";
obj.style.transition="all0";
objX=0;
}else{
obj.style.transition="all0.2s";
obj.style.WebkitTransform="translateX("+-delWidth+"px)";
obj.style.transition="all0";
objX=-delWidth;
}
})

//链式返回
returnthis;
};

})(Zepto);


touchWipe.html
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaname="viewport"id="viewport"content="width=device-width,initial-scale=1">
<title>html5向左滑动删除特效</title>

<style>
*{padding:0;margin:0;list-style:none;}
header{background:#f7483b;border-bottom:1pxsolid#ccc}
headerh2{text-align:center;line-height:54px;font-size:16px;color:#fff}
.list-ul{overflow:hidden}
.list-li{line-height:60px;border-bottom:1pxsolid#fcfcfc;position:relative;padding:012px;color:#666;
background:#f2f2f2;
-webkit-transform:translateX(0px);
}
.btn{position:absolute;top:0;right:-80px;text-align:center;background:#ffcb20;color:#fff;width:80px}
</style>

</head>
<body>
<header>
<h2>消息列表</h2>
</header>
<sectionclass="list">
<ulclass="list-ul">
<liid="li"class="list-li">
<divclass="con">
你的快递到了,请到楼下签收
</div>
<divclass="btn">删除</div>
</li>
<liclass="list-li">
<divclass="con">
哇,你在干嘛,快点来啊就等你了
</div>
<divclass="btn">删除</div>
</li>
</ul>
</section>

<p>X:<spanid="X"></span></p>
<p>objX:<spanid="objX"></span></p>
<p>initX:<spanid="initX"></span></p>
<p>moveX:<spanid="moveX"></span></p>

<scripttype="text/javascript"src="

<scripttype="text/javascript"src="zepto.touchWipe.js"></script>
<scripttype="text/javascript">
$(function(){
$('.list-li').touchWipe({itemDelete:'.btn'});
});

</script>
</body>
</html>

效果:

消除BUG
到上面一步,基本实现了我们所需要的功能。但是有几个问题:

1. 右边的删除按钮点击失灵,因为span无法冒泡到大按钮上;

2. 非常严重的问题,我们给div添加了touchmove事件同时用preventDefault()屏蔽了原始的浏览器事件,导致上下滑动div的时候 页面无法滚动了!

第一个问题比较容易解决,我们把span直接去掉,将“删除”写到css中的:before里,像这样:

.itemWipe .item-delete:before {
content: '删除';
color: #fff;
}

对于第二个问题,网上说用iscroll来解决。我们这里参考手机QQ中对联系人的滑动操作。

大致原理:在滑动最开始的时候,判断是Y轴的移动多 还是 X轴的移动多。 如果是X轴移动大,则判断为滑动删除操作,我们再使用preventDefault();

以上就是本文的全部内容,希望对大家的学习有所帮助。

阅读全文

与js飘动qq相关的资料

热点内容
oppo手机怎么用数据线连接电脑 浏览:247
恒智天成备份文件在哪里 浏览:976
电脑没联网怎么拷贝文件 浏览:224
wps工具栏怎么换成中文 浏览:338
win7和xp共享文件 浏览:883
苹果4代音量键没反应 浏览:827
怎样打开tif文件 浏览:153
java下载文件zip 浏览:440
qq浏览器压缩文件怎么设密码 浏览:526
黄埔数控编程哪里好 浏览:406
mac109升级1010 浏览:691
在java的菜单如何导入文件 浏览:982
现在什么网站销量最高 浏览:760
angularjsclass定义 浏览:157
ug数控编程怎么导出程序 浏览:466
cmdb文件 浏览:710
鹎文件夹 浏览:763
网络舆情应对的基本理念是什么 浏览:433
word2007层次结构 浏览:456
去掉文件名的数字 浏览:713

友情链接