谷歌浏览器老是闪烁【关于div的拖动---代码不多】

kyzy_yy_pm 2011-07-07 03:50:41
<body id="pid"></body>
<script>
function Drag(pid, cssText, className, divId){
var D = this, P = document.getElementById(pid), div, allowMove, width, height, isFF = navigator.userAgent.toLowerCase().indexOf("firefox"), zIndex = 10;

if(window["zIndex"]){
zIndex = window["zIndex"];
}
div = document.createElement("div");
if(cssText){
div.style.cssText = cssText;
}
if(className){
div.className = className;
}
if(divId){
div.id = divId;
}else{
div.id = "div" + parseInt(Math.random() * 10000) + "" + parseInt(Math.random() * 10000);
}
if(!div.style.left){
div.style.left = "0px";
}
if(!div.style.top){
div.style.top = "0px";
}
if(div.style.position != "absolute"){
div.style.position = "absolute";
}
if(!div.style.zIndex){
div.style.zIndex = ++zIndex;
}
div.onmousedown = function(event){
if(isFF > 0){//FF
window.onmousemove = function(event){
e = event || window.event;
D.move(e);
}
window.onmouseup = function(event){
e = event || window.event;
allowMove = false;
}
}else{
P.onmousemove = function(event){
e = event || window.event;
D.move(e);
}
P.onmouseup = function(event){
e = event || window.event;
allowMove = false;
}
}
e = event || window.event;
D.downUp(e, 1);
}
div.onmouseup = function(event){
e = event || window.event;
D.downUp(e, 0);
}
div.onmousemove = function(event){
e = event || window.event;
D.move(e);
}
P.appendChild(div);

this.downUp = function(e, type){
var opacity = 0.5;
if(type){
allowMove = true;
if(window["zIndex"]){
zIndex = window["zIndex"];
}
div.style.zIndex = ++zIndex;
window["zIndex"] = zIndex;
}else{
allowMove = false;
opacity = 1;
}
width = e.clientX - parseInt(div.style.left);
height = e.clientY - parseInt(div.style.top);

if(isFF > 0){
div.style.opacity = opacity;
}else{
div.style.filter = "alpha(opacity=" + (opacity * 100) + ")";
}
}

this.move = function(e){
if(!allowMove){
return false;
}
div.style.left = e.clientX - width + "px";
div.style.top = e.clientY - height + "px";
}
}

function create(){
var cssText = "background: #D5D3EB; width: 150px; height: 100px; border: 0.2cm #CCCCFF solid; cursor: pointer; position: absolute; left: " + parseInt(Math.random() * 1000);
new Drag("pid", cssText);
}
</script>
<input type="button" value="创建" onclick="create()">




在谷歌浏览器中一拖动的过快就闪,高手们帮帮我啊
...全文
357 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyzy_yy_pm 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 net_lover 的回复:]

改成这样
var cssText = "-webkit-user-select: none;background: #D5D3EB; width: 150px; height: 100px; border: 0.2cm #CCCCFF solid; cursor: pointer; position: absolute; left: " + parseInt(Math.random() * 1……
[/Quote]
哈哈,没话说,问题解决了,老大,多谢了
孟子E章 2011-07-07
  • 打赏
  • 举报
回复
改成这样
var cssText = "-webkit-user-select: none;background: #D5D3EB; width: 150px; height: 100px; border: 0.2cm #CCCCFF solid; cursor: pointer; position: absolute; left: " + parseInt(Math.random() * 1000);
kyzy_yy_pm 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 net_lover 的回复:]

使用最新的 谷歌浏览器 没有问题啊,只是拖动没有半透明而已
[/Quote]
老大,我代码书写上有没有那里需要改善下的,我js这块写东西总是比较随意,不知道老大觉得我代码里哪些地方不可取啊,多谢多谢了
kyzy_yy_pm 2011-07-07
  • 打赏
  • 举报
回复
我的也是最新的(12.0.742.112)
一快点拖动就老是蓝屏白屏的闪动,就像页面被选中那样
孟子E章 2011-07-07
  • 打赏
  • 举报
回复
使用最新的 谷歌浏览器 没有问题啊,只是拖动没有半透明而已

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧