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");

    【源码下载】

    点击下载

  • 相关阅读:
    linux下进度条的简单实现
    简单vim配置
    Linux下find指令
    Python学习笔记十三_操作数据库
    Python学习笔记十二_常用模块
    Python学习笔记十一_函数返回多值、列表生成式、循环多变量、入参格式声明
    Python学习笔记十_模块、第三方模块安装、模块导入
    Python函数及json练习_双色球
    Python函数及json练习_商品管理
    Python json练习_读写文件函数
  • 原文地址:https://www.cnblogs.com/babyzone2004/p/1816090.html
Copyright © 2011-2022 走看看