仿锤子手机官网banner幻灯效果 Jquery插件

github地址:https://github.com/MakeMoneyMan/hammer_banner  (求给小星星)

本来想直接推到首页的,结果有150字限制,好吧那就简单说说思路。

根据观察

  1、鼠标距离中心点越远,变化幅度越大。

  2、每个banner中的元素变化幅度不一致。(可以推断出,每个元素之间的距离不一样。)(这句是废话,3D效果就是从这里来的。。。)

实现思路

  调整每个元素的 translateZ 属性,使之形成“距离”。

  转动父元素。

有了思路就好弄了,直接贴上代码。

$.fn.hammer_banner = function () {

  var self = this;

  //创建遮罩层
  var hammerLayout = document.createElement("div");
  this.parent().append(hammerLayout);
  $(hammerLayout).attr("style", " 100%; height: 100%; position: absolute; background: yellow; z-index: 2; opacity: 0;");

  //绑定事件
  var stageW = this.width();
  var stageH = this.height();

  $(hammerLayout).on("mousemove", function (e) {
    var tmp_1 = ((e.offsetX - stageW/2)/stageW) * 1.05;
    var tmp_2 = ((e.offsetY - stageH/2)/stageH) * -4;

    // console.log(tmp_2);

    self
      .attr("style", "transform:rotateY("+tmp_1+"deg) rotateX("+ tmp_2 +"deg);");
      $(".warp")
   
  }).on("mouseout", function (e) {
    self
      .attr("style", "transform:rotateY(0deg) rotateX(0deg);");
  });

  return this;

}

  

hammer_banner 模仿锤子官网banner图3D效果,JQuery插件。

效果

image

演示地址

http://jsbin.com/dehuwucifi/edit?output

使用方法

$(".warp").hammer_banner();
原文地址:https://www.cnblogs.com/jh1994/p/6101980.html