zoukankan      html  css  js  c++  java
  • 原生javascript实现图片轮播效果

    【实例演示】

    前几天用jquery做了一个JS的图片轮播效果,现在用原生的javascript代码实现同样的功能,当练习用吧,代码写得不是很满意。看到BlueDream在他博客上写的javascript仿QQ滑动菜单的效果,代码实在是优雅,相比较差别一下就凸显了,下次再把他代码的精髓偷过来,嘿嘿。

    【原理简述】

    html和css跟JQuery实现图片轮播效果里面的一样,略去。主要是几个公共函数,渐显和渐失,用闭包实现。至于主体逻辑部分,非常一般。

    【程序源码】

    贴几个公共函数算了,fadeIn,渐显,fadeOut,渐失

    代码
    function id(name) {return document.getElementById(name);}
    //遍历函数
    function each(arr, callback) {
    if (arr.forEach) {arr.forEach(callback);}
    else
     for (var i = 0, len = arr.length; i < len; i++) callback.call(this, arr[i], i, arr);}
    }
    function fadeIn(elem) {
    setOpacity(elem,
    0)
    for ( var i = 0; i < 20; i++) {
    (
    function() {
    var pos = i * 5;
    setTimeout(
    function() {
    setOpacity(elem, pos)
    }, i
    * 25);
    })(i);
    }
    }
    function fadeOut(elem) {
    for ( var i = 0; i <= 20; i++) {
    (
    function() {
    var pos = 100 - i * 5;
    setTimeout(
    function() {
    setOpacity(elem, pos)
    }, i
    * 25);
    })(i);
    }
    }
    // 设置透明度
    function setOpacity(elem, level) {
    if (elem.filters) {
    elem.style.filter
    = "alpha(opacity=" + level + ")";
    }
    else {
    elem.style.opacity
    = level / 100;
    }
    }
    【调用方法】

    //count:图片数量,wrapId:包裹图片的DIV,ulId:按钮DIV,infoId:信息栏

    babyzone.scroll(count,wrapId,ulId,infoId);

    babyzone.scroll(4,"banner_list","list","banner_info");

    【源码下载】

    点击下载

  • 相关阅读:
    缓存概述
    进程Process
    MVC系统过滤器、自定义过滤器
    暂无,进程那篇深度不够
    SeasLog 与 monolog 日志系统的区别,SeasLog安装步骤
    阿里面试官:说一下从url输入到返回请求的过程,问的难度就是不一样!
    [技术分享]OSI七层模型详解
    Mysql引擎介绍及InnoDB逻辑存储结构
    Paypal 实现自动订阅
    PayPal 支付Checkout 收银台和 Subscription 订阅计划全过程分享
  • 原文地址:https://www.cnblogs.com/babyzone2004/p/1816090.html
Copyright © 2011-2022 走看看