利用jquery封装一个简易的旋转木马特效插件

这只是一个简易的旋转木马插件,理解其中的原理比较重要
;(function ($) {
  $.fn.extend({
    transiton:function (json) {
      //设置初始配置单
      json = $.extend([
        {
          width: 400,
          top: 20,
          left: 50,
          opacity: 0.2,
          zIndex: 2
        },//第0个li的样式
        {
          width: 600,
          top: 70,
          left: 0,
          opacity: 0.8,
          zIndex: 3
        },//第1个li的样式
        {
          width: 800,
          top: 100,
          left: 200,
          opacity: 1,
          zIndex: 4
        },//第2个li的样式
        {
          width: 600,
          top: 70,
          left: 600,
          opactity: 0.8,
          zIndex: 3
        },//第3个li的样式
        {
          width: 400,
          top: 20,
          left: 750,
          opacity: 0.2,
          zIndex: 2
        } //第4个li的样式
      ],json);//初始配置单设置结尾

      //寻找对象
      var $lis = this.find('ul>li');

      $lis.each(function (i, e) {
        //$(e)指代当前事件对象
        //给每个li的样式初始化
        $(e).stop()
        .animate({
          'width': json[i].width,
          'top': json[i].top,
          'left': json[i].left,
          'opacity': json[i].opacity,
          'zIndex': json[i].zIndex
        }, 1000);
      });

      //给wrap注册鼠标悬停事件
      this.on('mouseenter', function () {
        this.children().children('div.arrow').stop().animate({opacity:1},500);
      });
      //给wrap注册鼠标离开事件
      this.on('mouseleave', function () {
        this.children().children('div.arrow').stop().animate({opacity:0},500);
      });

      //给左右箭头注册点击事件
      //给左箭头注册点击事件
      this.find('div>a.prev').on('click', function () {
        //让配置单的第一项跑到数组的最后一项
        json.push(json.shift());
        //给每个li重新配置样式,并利用animate方法使其呈现动画效果
        $lis.each(function (i, e) {
          $(e).stop()
          .animate({
            'width': json[i].width,
            'top': json[i].top,
            'left': json[i].left,
            'opacity': json[i].opacity,
            'zIndex': json[i].zIndex
          }, 500);
        });
      });

      //给右箭头注册点击事件
      this.find('div>a.next').on('click', function () {
        //让配置单的第一项跑到数组的最后一项
        json.unshift(json.pop());
        //给每个li重新配置样式,并利用animate方法使其呈现动画效果
        $lis.each(function (i, e) {
          $(e).stop()
          .animate({
            'width': json[i].width,
            'top': json[i].top,
            'left': json[i].left,
            'opacity': json[i].opacity,
            'zIndex': json[i].zIndex
          }, 500);
        });
      });
    }
  });
})(jQuery);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值