<!-- Hide the script from old browsers --
function compute(obj) //定义一个函数 名字叫compute 他接收了一个参数 obj
{obj.expr.value = eval(obj.expr.value)} //当前的参数的值和下文参数值所用的方法相同
var one = '1' //定义一个字符型的1
var two = '2' //定义一个字符型的2
var three = '3' //定义一个字符型的3
var four = '4' //定义一个字符型的4
var five = '5' //定义一个字符型的5
var six = '6' //定义一个字符型的6
var seven = '7' //定义一个字符型的7
var eight = '8' //定义一个字符型的8
var nine = '9' //定义一个字符型的9
var zero = '0' //定义一个字符型的0
var plus = '+' //定义一个字符型的+
var minus = '-' //定义一个字符型的*
var multiply = '*' //定义一个字符型的*
var divide = '/' //定义一个字符型的/
var decimal = '.' //定义一个字符型的.
function enter(obj, string) //定义一个函数 名字叫enter 他接收了一个参数 obj
{obj.expr.value += string} //让 obj的值加上 '+'后面的值
function clear(obj) //定义一个函数 名字叫clear 他接收了一个参数 obj
{obj.expr.value = ''} //让obj的值等于空
// --End Hiding Here -->
</script>
<form name="calc">
<table border=1>
<td colspan=4><input type="text" name="expr" size=30 action="compute(this.form)"><tr>
<!--提交表单-->
<td><input type="button" value=" 7 " onClick="enter(this.form, seven)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 8 " onClick="enter(this.form, eight)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 9 " onClick="enter(this.form, nine)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" / " onClick="enter(this.form, divide)"><!--当鼠标点
击按钮的时候提交给函数按钮中的值-->
<tr><td><input type="button" value=" 4 " onClick="enter(this.form, four)"><!--当鼠标
点击按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 5 " onClick="enter(this.form, five)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 6 " onClick="enter(this.form, six)"><!--当鼠标点击按
钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" * " onClick="enter(this.form, multiply)"><!--当鼠标
点击按钮的时候提交给函数按钮中的值-->
<tr><td><input type="button" value=" 1 " onClick="enter(this.form, one)"><!--当鼠标点
击按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 2 " onClick="enter(this.form, two)"><!--当鼠标点击按
钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 3 " onClick="enter(this.form, three)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" - " onClick="enter(this.form, minus)"><!--当鼠标点
击按钮的时候提交给函数按钮中的值-->
<tr><td colspan=2><input type="button" value=" 0 " onClick="enter
(this.form, zero)"><!--当鼠标点击按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" . " onClick="enter(this.form, decimal)"><!--当鼠标
点击按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" + " onClick="enter(this.form, plus)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<tr><td colspan=2><input type="button" value=" = " onClick="compute(this.form)"><!
--提交表单在javascript中进行运算-->
<td colspan=2><input type="button" value="AC" size= 3 onClick="clear(this.form)"><!--
点击此按钮调用此函数-->
</table>
</form>
这个函数是求如图蓝线的长度 黑色是当前窗口 绿色是hover的元素
function move( ev , bool) {
var top = $(this).offset().top
var bottom = top + $(this).height()
var left = $(this).offset().left
var right = left + $(this).width()
这个函数是求相对于当前页面 hover元素的四条边的距离
然后计算
var sT = Math.abs(y - top), //鼠标位置到hover元素顶部的距离
sB = Math.abs(y - bottom), //底部
sL = Math.abs(x - left), //左边
sR = Math.abs(x - right) //右边
var a = Math.min( sT , sB , sL , sR ) //然后在这4个距离里面选出最小值 变量a 就是距离最短的值
主要思路是:鼠标当前点到下一点直接间隔计算出速度。这样就实现了惯性滑动效果。下面是简单的js代码实现:仅供参考:
<style>
#div1{ width:100px height:100px background:red position:absolute left:0px top:0}
</style>
<script>
window.onload=function(){
var oDiv=document.getElementById('div1')
var iSpeedX=0
var iSpeedY=0
var lastX=0
var lastY=0
var timer=null
oDiv.onmousedown=function(ev){ //div的鼠标按下事件,主要计算鼠标当前位置,和移动位置。这样可以计算出鼠标移动速度。
var oEvent=ev || event
var disX=oEvent.clientX-oDiv.offsetLeft
var disY=oEvent.clientY-oDiv.offsetTop
clearInterval(timer)
document.onmousemove=function(ev){ //鼠标拖动事件。
var oEvent=ev || event
oDiv.style.left=oEvent.clientX-disX+'px'
oDiv.style.top=oEvent.clientY-disY+'px'
iSpeedX=oEvent.clientX-lastX
iSpeedY=oEvent.clientY-lastY
lastX=oEvent.clientX
lastY=oEvent.clientY
}
document.onmouseup=function(){ //当鼠标抬起后,清掉移动事件。
document.onmousemove=null
document.onmouseup=null
oDiv.releaseCapture && oDiv.releaseCapture()
startMove()
}
oDiv.setCapture && oDiv.setCapture()
return false
}
function startMove(){ //移动函数,主要操作是计算鼠标移动速度和移动方向。
clearInterval(timer)
timer=setInterval(function(){
iSpeedY+=3
var t=oDiv.offsetTop+iSpeedY
var l=oDiv.offsetLeft+iSpeedX
if(t>document.documentElement.clientHeight-oDiv.offsetHeight){
t=document.documentElement.clientHeight-oDiv.offsetHeight
iSpeedY*=-0.8
iSpeedX*=0.8
}
if(t<0){
t=0
iSpeedY*=-0.8
iSpeedX*=0.8
}
if(l>document.documentElement.clientWidth-oDiv.offsetWidth){
l=document.documentElement.clientWidth-oDiv.offsetWidth
iSpeedX*=-0.8
iSpeedY*=0.8
}
if(l<0){
l=0
iSpeedX*=-0.8
iSpeedY*=0.8
}
oDiv.style.left=l+'px'
oDiv.style.top=t+'px'
if(Math.abs(iSpeedX)<1)iSpeedX=0
if(Math.abs(iSpeedY)<1)iSpeedY=0
if(iSpeedX==0 && iSpeedY==0 && t==document.documentElement.clientHeight-oDiv.offsetHeight){
clearInterval(timer)
}
document.title=i++
},30)
}
}
</script>
</head>
<body>
<div id="div1"></div>
</body>