问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js运动框架为什么不行

发布网友 发布时间:2022-04-22 15:06

我来回答

3个回答

懂视网 时间:2022-04-22 19:27

本篇文章给大家带来的内容是关于js链式运动框架与实例的介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前面介绍的运动都是一个物体运动之后就结束了,如果一个物体运动之后,还有其他的操作,比如一个p先变宽,然后变高、最后变透明度,我们前面的运动框架就不满足情况了。我们可以在运动框架的基础上,在加上一个fnEnd函数,当运动执行完成之后执行的操作。

链式运动框架

function getStyle(obj,name){
 if(obj.currentStyle){
 return obj.currentStyle[name];
 }
 else{
 return getComputedStyle(obj,false)[name];
 }
}

function startMove(obj, attr, iTarget, fnEnd) {
 clearInterval(obj.timer);
 obj.timer = setInterval(function() {
 var cur=0;
 if(attr==="opacity"){
 cur=Math.round(parseFloat(getStyle(obj,attr))*100);//有可能会出现误差0.07*100
 }
 else{
 cur=parseInt(getStyle(obj,attr));
 }
 var speed = (iTarget - cur) / 6;
 speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
 if (cur === iTarget) {
 clearInterval(obj.timer);
 if(fnEnd)fnEnd();//运动结束后,如果fnEnd参数传递进去了就执行fnEnd函数
 } else {
 if(attr==="opacity"){
 obj.style.filter="alpha(opacity:"+cur+speed+")";
 obj.style.opacity=(cur+speed)/100;
 }else{
 obj.style[attr]=cur+speed+"px";
 }
 }
 }, 30)
}

链式运动例子

我们用上面的链式运动框架做一个p先运动调整宽度,再运动调整高度,最后 运动调整透明度。

<!DOCTYPE html>
<html>
 <head>
 <title>链式运动</title>
 <script src="move2.js"></script>
 <style>
 #p1{
 width: 100px;
 height: 100px;
 background: red;
 filter:alpha(opacity:30);
 opacity:0.3;
 }
 </style>
 <script>
 window.onload=function(){
 var op=document.getElementById("p1");
 op.onmouseover=function(){
  startMove(op,"width",300,function(){
  startMove(op,"height",300,function(){
  startMove(op,"opacity",100);
  })
  })
 }
 op.onmouseout=function(){
  startMove(op,"opacity",30,function(){
  startMove(op,"height",100,function(){
  startMove(op,"width",100);
  })
  });
 }
 }
 </script>
 </head>
 <body>
 <p id="p1"></p>
 </body>
</html>

热心网友 时间:2022-04-22 16:35

我看你的代码貌似想做右下角的的悬浮广告。

如果是的话,你把你的body设置一个高度就可以看出效果了。

看你代码没有问题,但是这样写的话,有div抖动的bug,换成下面的试试。

window.onload =function(){
    var box=document.getElementById('box');
    if(window.navigator.userAgent.indexOf('MSIE 6.0') != -1){
        window.onscroll=function  () {
            var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
            box.style.top=document.documentElement.clientHeight-box.offsetHeight+scrollTop+"px";
        };
    }
};

热心网友 时间:2022-04-22 17:53

box需要设置position定位。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 重医附一院中心实验室 河南省人民医院中心实验室是做什么的 监理中的总监理办公室中的中心试验室的作用是什么? CNAS实验室中心主任换了后要做哪些工作? 国内有没有合格的中心实验室? 教育部工程研究中心 重点实验室 哪个 芯片组对应CPU 新兴职业学院有研究方向与行业、企业发展密切相关的实验室中心有几个 利润分配表的未分配利润和资产负债表的未分配利润金额一样? 动物实验室中心可以建在居民区吗 所有者权益中只有未分配利润,那么是不是就是等于资产减去负债 怎么看cpu适合什么样的芯片组 应届毕业生求职网怎么样?可不可以相信山上面发布的信息? CPU,GPU芯片组的区别 资产负债表中的未分配利润 有人知道这种密码锁怎么开吗?没有钥匙,密码也忘了 没有钥匙怎么开门锁 一天大便三次算正常吗? 未分配利润负债还是资产 一天至少三次大便正常吗?经常腹痛 巧克力是怎么样制成的. 西芹炒土豆丝的做法 芹菜土豆炒肉的做法 宁波拓展培训哪几家好些 通过加好友的途径有哪些 怎么把word文档里面别人的图片换成自己的 扬子集团下乡净水器是假的吗 郑州市区内有好多卖茅台镇国宾洒的不知酒是真假 杭州哪里看五官科最好 在杭州看五官科,是浙二医院好还是市三医院 杭州哪家医院五官科比较好? 我有鼻窦炎和咽喉炎浙江最好最专业的耳鼻喉医院是哪家非常感谢你们推荐! 杭州耳科哪里比较好? 杭州看耳朵哪个医院比较好。外面洗头时耳道有水进去,和耳屎粘住,听力有影响。自己掏了还是没用。 有人用过我来贷这个软件吗?靠谱吗 失落十三年真相是什么? 婚姻法对出轨有什么规定 叠影危情分集剧情 求一部古惑仔 失落的岛屿的剧情介绍