div块鼠标按下、移动事件、松开处理,HTML文件正常
但在Blazor项目执行JS后,事件无效,DIV无法移动?
htlm如下:
<div id="ID1" style="position:absolute;height: 60px; width: 100px;background-image:url(手腕带.png);background-repeat:no-repeat;cursor:move;left:200px;top:200px">
<div style="background-color:Lime;display:inline-block;margin-top:40px;margin-left:20px;">1</div>
<div style="background-color:Gray;display:inline-block;margin-top:40px;margin-left:35px;">2</div>
<div style="text-align:center;">设备1</div>
</div>
<div id="ID2" style="position:absolute;height: 60px; width: 100px;background-image:url(台垫.png);background-repeat:no-repeat;">
<div style="background-color:red;display:inline-block;margin-top:40px;margin-left:50px;">1</div>
<div style="text-align:center;">设备2</div>
</div>
<script type="text/javascript">
<!--
<!--ShowDev("ID1",200,100);-->
<!--ShowDev("ID2",50,100);-->
<!--ShowDev("ID3",100,50);-->
MoveDev("ID1");
MoveDev("ID2");
MoveDev("ID3");
-->
</script>
JS如下:
function ShoTL(obj){
var div = document.getElementById(obj);
var topLength = div.getBoundingClientRect().top; //div离屏幕上边距离(长度)
var leftLength = div.getBoundingClientRect().left; //div离屏幕左边距离(长度)
alert(topLength+":"+leftLength);
}
function MoveDev(obja)
{
if (typeof obja == "string") {
var obj = document.getElementById(obja);
obj.orig_index=obj.style.zIndex;
//设置当前对象永远显示在最上层
}
obj.onmousedown=function (a){
//鼠标按下
this.style.cursor="move";
//设置鼠标样式
this.style.zIndex=1000;
var d=document;
if(!a) a=window.event;
//按下时创建一个事件
var x=a.clientX-document.body.scrollLeft-obj.offsetLeft;
//x=鼠标相对于网页的x坐标-网页被卷去的宽-待移动对象的左外边距
var y=a.clientY-document.body.scrollTop-obj.offsetTop;
//y=鼠标相对于网页的y左边-网页被卷去的高-待移动对象的左上边距
d.onmousemove=function(a){//鼠标移动
if(!a) a=window.event;//移动时创建一个事件
obj.style.left=a.clientX+document.body.scrollLeft-x;
obj.style.top=a.clientY+document.body.scrollTop-y;
}
d.onmouseup=function (){//鼠标放开
document.onmousemove=null;
document.onmouseup = null;
//ShoTL(obja);
obj.style.cursor="normal";//设置放开的样式
obj.style.zIndex=obj.orig_index;
}
}
}
function ShowDev(obja,t,l)
{
if (typeof obja == "string") {
var obj = document.getElementById(obja);
obj.orig_index=obj.style.zIndex;
//设置当前对象永远显示在最上层
obj.style.left=l;
obj.style.top=t;
}
}
Blazor如下:
c#c#
private async void TestShow()
{
await runtime.InvokeVoidAsync("ShowHell");
await runtime.InvokeVoidAsync("ShowDev", "ID2", 500, 500);
await runtime.InvokeVoidAsync("MoveDev", "ID2");
}