0

0

javascript中的轮播图插件化的封装示例

黄舟

黄舟

发布时间:2017-07-17 16:16:34

|

1454人浏览过

|

来源于php中文网

原创

本文实例为大家分享了js轮播图的插件化封装代码,供大家参考,具体内容如下

具体代码如下:

~function(){
  function AutoBanner(curEleId,ajaxURL,interval){
    //把之前存储获取元素的变量都作为当前实例的私有属性
    this.banner = document.getElementById(curEleId);
    this.bannerInner = utils.firstChild(this.banner);
    this.bannerTip = utils.children(this.banner,"ul")[0];
    this.bannerLink = utils.children(this.banner,'a');
    this.bannerLeft = this.bannerLink[0];
    this.bannerRight = this.bannerLink[1];
    this.pList = this.bannerInner.getElementsByTagName('p');
    this.imgList = this.bannerInner.getElementsByTagName('img');
    this.oLis = this.bannerTip.getElementsByTagName('li');

    //之前的全局变量也应该变为自己的私有属性
    this.jsonData = null;
    this.interval = interval || 3000;
    this.autoTimer = null;
    this.step = 0;
    this.ajaxURL = ajaxURL;
    //返回当前实例
    return this.init();
  }

  AutoBanner.prototype = {
    constructor:AutoBanner,
    //Ajax请求数据
    getData:function(){
      var _this = this;
      var xhr = new XMLHttpRequest;
      xhr.open("get",this.ajaxURL + "?_="+Math.random(),false);
      xhr.onreadystatechange = function(){
        if(xhr.readyState ===4 && /^2\d{2}$/.test(xhr.status)){
          _this.jsonData = utils.formatJSON(xhr.responseText)
        }
      }
      xhr.send(null)
    },
    //实现数据绑定
    bindData:function(){
      var str = "",str2 = "";
      if(this.jsonData){
        for(var i = 0,len=this.jsonData.length;i":str2+="
  • " } } this.bannerInner.innerHTMl = str; this.bannerTip.innerHTML = str2; }, //延迟加载 lazyImg:function(){ var _this = this; for(var i = 0,len = this.imgList.length;i

    代码界的小白,工作中需要多次调用左右转换的轮播图,我就给封装了。但是总感觉自己写的代码比较繁琐。方法比较笨,求大神给简洁化一下,顺便进行学习。 另外如果默认值是top的话。动画效果会没有。

    $.fn.zuoyouzhuan = function(options) {
            this.each(function(i, ele) {
                slide(ele, options)
            })
            return this
        }
        var slide = function(ele, options) {
            var des = $.extend({
                fangxiang: 'left',
                duoshaotu: '4',
                sudu: '3000'
            }, options)
            var $ele = $(ele)
            var $ul = $ele.find('ul')
            var $li = $ele.find('li')
            var x_width = $ele.find('li').width()
            var y_height = $ele.find('li').height()
            var num = $ele.find('li').length;
            if(des.fangxiang == "top") {
                var topmar = parseInt($li.css('margin-bottom'))
                var  boderw= parseInt($('li').css('border-width'))
                $ul.css({ 'heigth': (num * (y_height + topmar + boderw*2)) + 'px' });
            }
            if(des.fangxiang == "left") {
                var  boderw= parseInt($('li').css('border-width'))
                var rightmar = parseInt($li.css('margin-right'))
                $ul.css({ 'width': (num * (x_width + rightmar+boderw*2)) + 'px' });
            }
            var t;
            if(num > des.duoshaotu) {
                var t = setInterval(sidebarFlipAuto, des.sudu);
                function sidebarFlipAuto() {
                    if(des.fangxiang == "left") {
                        $ul.stop(true, true).animate({ "left": (x_width + rightmar) + 'px' }, 300, function() {
                            $ul.find('li:first').appendTo($ul);
                            $ul.css("left", '0');
                        });
                    }
                    if(des.fangxiang == "top") {
                        $ul.stop(true, true).animate({ "top": (y_height + topmar) + 'px' }, 300, function() {
                            $ul.find('li:first').appendTo($ul);
                            $ul.css("top", '0');
                        });
                    }
                }
                $ul.hover(function() {
                    clearInterval(t);
                }, function() {
                    t = setInterval(sidebarFlipAuto, 4000);
                })
                $ele.find('span').eq(0).unbind('click').click(function() {
                    $ul.find('li:last').prependTo($ul);
                    if(des.fangxiang == "left") {
                        $ul.css({ "left": (x_width + rightmar) + 'px' });
                        $ul.stop(true, true).animate({ "left": '0' }, 300);
                    }
                    if(des.fangxiang == "top") {
                        $ul.css({ "top": (y_height + rightmar) + 'px' });
                        $ul.stop(true, true).animate({ "top": '0' }, 300);
                    }
                })
                $ele.find('span').eq(1).unbind('click').click(function() {
                    sidebarFlipAuto();
                })
            }
    
        }
        
        那个.unbind('click').click不写这个有时会执行两次,所以百度了一下这个方法。
        求简洁化。
    javascript中的轮播图插件化的封装示例

    相关文章

    java速学教程(入门到精通)
    java速学教程(入门到精通)

    java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    php源码安装教程大全
    php源码安装教程大全

    本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

    65

    2025.12.31

    php网站源码教程大全
    php网站源码教程大全

    本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

    43

    2025.12.31

    视频文件格式
    视频文件格式

    本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

    35

    2025.12.31

    不受国内限制的浏览器大全
    不受国内限制的浏览器大全

    想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

    41

    2025.12.31

    出现404解决方法大全
    出现404解决方法大全

    本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

    204

    2025.12.31

    html5怎么播放视频
    html5怎么播放视频

    想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

    9

    2025.12.31

    关闭win10系统自动更新教程大全
    关闭win10系统自动更新教程大全

    本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

    8

    2025.12.31

    阻止电脑自动安装软件教程
    阻止电脑自动安装软件教程

    本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

    3

    2025.12.31

    html5怎么使用
    html5怎么使用

    想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

    2

    2025.12.31

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    React 教程
    React 教程

    共58课时 | 3.2万人学习

    TypeScript 教程
    TypeScript 教程

    共19课时 | 1.9万人学习

    Bootstrap 5教程
    Bootstrap 5教程

    共46课时 | 2.7万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号