`
xiaomiya
  • 浏览: 131842 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

javascript运动框架

阅读更多

项目中要用到轮播,并且还是宽屏自适应的轮播效果,雷同alipay首页的轮播效果差不多。

打算用原生js来实现。

所以必然要用到js 的运动框架那么下面就先分享这个

 

下面就呈现js 的运动框架代码(网上有很多的)

封装好的运动框架Move(obj,attr,iTarget),可直接调用:

可用于设置width、border、fontSize、marginLeft、opacity等许多常见属性值的变速变化,实现各种有趣效果。

兼容IE和FF。

/****************
    *
    *   IE-BUG:
    *   在IE中,设置opacity属性时,元素样式中需要设置opacity属性,才能读取到opacity值。
    *
    *   obj:元素对象。   attr:用引号包围的属性名。   iTarget:属性目标值。
    *
    *****************/


    function Move(obj,attr,iTarget){
        clearInterval(obj.timer);//关闭前一个定时器,解决对同个对象同时调用多个Move()时,定时器叠加问题。使用obj.timer给每个调用Move()的对象赋予各自的定时器,防止多个对象同时调用Move()时,同用一个定时器,而导致相关干扰问题。
        obj.timer=setInterval(function(){
            var cur=0;//创建一个变量,用于存储 attr属性每时每刻的值
            if(attr=="opacity"){
            //针对在FF中opacity属性值为浮点数值问题,将属性值 四舍五入、转换成浮点型。乘以100,使opacity属性值与IE统一为百分数
                cur=Math.round(parseFloat(getStyle(obj,attr))*100);
            }else{
                cur=parseInt(getStyle(obj,attr));//将除opacity外的属性(width/fontSize/MarginLeft等)的初始值 转换为整型
            }
            var speed=(iTarget-cur)/10;//创建 递减的速度speed变量。实现属性值的变速改变

            speed=speed>0?Math.ceil(speed):Math.floor(speed);//取整,解决浏览器忽略小于1px的数值 导致运动结束时,离目标值Itarget少几个像素的问题

            if(iTarget==cur){//当目标值等于目标值时,结束定时器
                clearInterval(obj.timer);
            }else{
                    cur+=speed;//当前值cur 加上 递减的速度值speed
                if(attr=="opacity"){
                    // 分别对IE和FF设置opacity属性值
                    obj.style.filter="alpha(opacity:"+cur+")"; //for IE
                    obj.style.opacity=cur/100;   //for FF
                }else{
                    obj.style[attr]=cur+"px"; //给指定属性attr 添加值cur+speed
                }
            }
        },30);
    }
    //getStyle()函数 用于兼容IE和FF:获取 对象的 非行间样式中的属性的值。 obj:元素对象。 name:属性名。
    function getStyle(obj,name){
        if(obj.currentStyle){
            return obj.currentStyle[name];//for IE
        }else{
            return getComputedStyle(obj,false)[name];//for FF
        }
    }

 

期待下面的一篇就会是js轮播图的实现:

类似:http://www.huawei.com/cn/

or  https://www.alipay.com/?src=alipay.com 结合品

 

 

0
1
分享到:
评论

相关推荐

    前端JavaScript运动框架Tween.js

    前端JavaScript运动框架Tween.js

    前端JavaScript运动框架move.js

    前端JavaScript运动框架move.js,有需要的友友可以自行下载使用。

    JavaScript运动框架.pdf

    JavaScript运动框架.pdf

    javascript运动框架用法实例分析(实现放大与缩小效果).docx

    ### JavaScript运动框架用法实例分析(实现放大与缩小效果) #### 概述 在Web开发中,使用JavaScript来实现元素的动态效果是非常常见的需求之一。本文档将详细讲解一个简单的JavaScript运动框架,通过实例演示如何...

    javascript运动框架用法实例分析(实现放大与缩小效果)

    在探讨JavaScript运动框架的用法时,我们首先需要明确什么是运动框架,它的作用和基本原理。在计算机图形和动画制作领域,运动框架是指通过编程控制元素属性(如位置、透明度、尺寸等)的连续变化,从而模拟动画效果...

    JavaScript运动框架 链式运动到完美运动(五)

    JavaScript运动框架是用于实现网页元素动态效果的一种技术,它能够帮助开发者轻松地创建出复杂的动画效果。本篇文章主要探讨的是JavaScript运动框架中的一个重要概念——链式运动,以及如何将其运用到完美运动中。 ...

    JavaScriptMovement:JavaScript 运动框架

    JavaScript 运动 JavaScript 运动框架

    JavaScript运动框架 多物体任意值运动(三)

    JavaScript运动框架在处理多物体进行任意属性值的运动时提供了丰富的功能,它允许页面中不同的元素根据用户的交互(如鼠标移入移出)来动态改变其属性,比如高度、宽度、字体大小以及透明度等。这种框架的实现依赖于...

    JavaScript完美运动框架

    JavaScript 完美运动框架 在 JavaScript 中,实现一个元素的多个属性同时运动是非常有挑战性的任务。今天,我们将探索一个名为「JavaScript 完美运动框架」的解决方案,该框架可以实现多个属性的同时运动,例如宽度...

    JavaScript运动框架 多值运动(四)

    在本文中,我们将深入探讨JavaScript运动框架中的一个重要概念——多值运动,并探讨其在实现多属性动画时的机制和潜在问题。我们将从多个维度解析该框架,并提出相应的解决方案。本文将涉及以下知识点: 1. 多值...

    JavaScript运动框架 解决速度正负取整问题(一)

    本文将探讨如何解决JavaScript运动框架中的速度正负取整问题,以确保元素能精确地到达目标位置。 首先,我们要理解缓冲运动的概念。缓冲运动是一种模拟现实世界物理现象的动画方式,它使得元素在接近目标位置时逐渐...

    javascript 写的任意值运动框架可以做出网页上的许多效果

    javascript 写的任意值运动框架可以做出网页上的许多效果

    简易而又灵活的Javascript拖拽框架

    灵活性则体现在框架允许开发者根据项目需求自定义拖拽行为,如设置拖动范围、限制元素运动方向、添加拖动事件监听等。 Drag5框架的基本工作原理是监听鼠标的移动事件,当鼠标按下时,将被拖动的元素与鼠标位置绑定...

    防妙味课堂运动框架

    "防妙味课堂运动框架"是一个专为JavaScript开发的运动框架,旨在帮助开发者轻松实现网页中的动画效果。这个框架的设计灵感可能来源于妙味课堂的教学内容,经过了两天深入的学习和理解,开发者用一天的时间编码并进行...

Global site tag (gtag.js) - Google Analytics