滑动效果
来源:互联网 发布:epub360 知乎 编辑:程序博客网 时间:2024/04/30 00:51
程序运行效果如下:
该效果在鼠标滑过字体时触发。
下面是实现该效果的JavaScript程序:
<script type="text/javascript">
window.onload=prepare;
function prepare(){
var elementp=document.getElementById('p1');
p1.ex=50;
p1.ey=50;
elementp.onmouseover=function(){
moveElement('p1',p1.ex,p1.ey,10);
p1.ex+=50;
p1.ey+=50;
}
}
function moveElement(eleId,ele_x,ele_y,interval){
if(!document.getElementById) return false;//对象监测
if(!document.getElementById(eleId)) return false;
var elem=document.getElementById(eleId);
if(elem.movement){
clearTimeout(repeat);/*清除当前排队函数 即移动效果 避免当再次将鼠标滑过后 导致滑动效果事件的累积 最后导致程序的效果的混乱 */
}
var x=parseInt(elem.style.left);//通过style.left style.top得到位置属性 用parseInt将字符转成数字
var y=parseInt(elem.style.top);
if(!elem.style.left){
elem.style.left=0+'px';
}
if(!elem.style.top){
elem.style.top=0+'px';
}
if(x==ele_x&&y==ele_y){
return true;//如果当前位置和目标位置一致 则不进行滑动效果
}
if(x>ele_x){//Math.ceil()函数执行向上取整计算 (x-ele_x)/10能够有一个缓慢的滑动过渡 而不是立刻执行
var dist=Math.ceil((x-ele_x)/10);
x=x-dist;
}
if(x<ele_x){
var dist=Math.ceil((ele_x-x)/10);
x=x+dist;
}
if(y>ele_y){
var dist=Math.ceil((y-ele_y)/10);
y=y-dist;
}
if(y<ele_y){
var dist=Math.ceil((ele_y-y)/10);
y=ele_y+y;
}
elem.style.left=x+'px';//最后得到的x,y是目标位置 但是是数字 而不是字符 所以要加上'px' 进行转化
elem.style.top=y+'px';
repeat="moveElement('"+eleId+"',"+ele_x+","+ele_y+","+interval+")";
elem.movement=setTimeout(repeat);
}
</script>
- 滑动效果
- 滑动效果
- 滑动效果
- android 滑动效果---左右滑动
- 滑动门效果
- Js滑动效果
- 滑动的效果
- CSS滑动门效果
- DIV滑动效果
- DIV滑动效果
- 滑动效果类
- JavaScript 滑动条效果
- 图片滑动放大效果
- 滑动面板菜单效果
- jquery滑动效果
- 封装图片滑动效果
- Slider 滑动条效果
- 封装图片滑动效果
- 【Redis】 手工搭建集群
- spark RDD算子(二) filter,map ,flatMap
- 修改Maven的本地仓库路径
- Android自定义布局仿京东详情页,上下翻页
- 排序算法
- 滑动效果
- 【计算机网络】考完总结分析
- 动态规划练习题-21(三角最佳路径)
- 图模型学习概述
- 附录:约瑟夫环代码
- nginx的反向代理
- [LintCode]k Sum
- python基础之运算符
- Java --- JSP2新特性