前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Float Panel

Float Panel

作者头像
Akilar
发布2021-06-11 11:10:35
6810
发布2021-06-11 11:10:35
举报
文章被收录于专栏:Akilarの糖果屋

基础引入方案(通用)

  1. 新建 [Blogroot]\themes\butterfly\source\js\floatpanel.js,
代码语言:javascript
复制
var ANGLE = 45; //控制浮动角度,数值越大,浮动幅度越大。

var panel= document.getElementsByClassName('wowpanels');
for(var i = 0;i<panel.length;i++){
	floatable(panel[i]);
  }
function floatable (content) {
	content.addEventListener('mouseout', e => {
		content.style.transform = `perspective(300px)
								   rotateX(0deg)
								   rotateY(0deg)
								   rotateZ(0deg)`;
	});
	content.addEventListener('mousemove', e => {
		var w = content.clientWidth;
		var h = content.clientHeight;
		var y = (e.offsetX - w * 0.5) / w * ANGLE;
		var x = (1 - (e.offsetY - h * 0.5)) / h * ANGLE;

		content.style.transform = `perspective(300px)
								   rotateX(${x}deg)
								   rotateY(${y}deg)`;
	});
}
  1. 修改 [Blogroot]\_config.butterfly.yml, 添加引入项:
代码语言:javascript
复制
  inject:
    head:
    bottom:
+     - <script async data-pjax src="/js/custom/floatpanel.js"></script>
  1. 给你想要添加特效的元素添加 wowpanels 类。在步骤 1 的 floatpanel.js上方添加:
代码语言:javascript
复制
// 新增的内容
var arr = document.getElementsByClassName('element-class');
//把element-class替换成你想要添加特效的元素的类名
for(var i = 0;i<arr.length;i++){
    arr[i].classList.add('wowpanels');
  }
// 原来的内容
var ANGLE = 45; //控制浮动角度,数值越大,浮动幅度越大。
var panel= document.getElementsByClassName('wowpanels');
for(var i = 0;i<panel.length;i++){
  floatable(panel[i]);
  }
function floatable (content) {
  content.addEventListener('mouseout', e => {
    content.style.transform = `perspective(300px)
                   rotateX(0deg)
                   rotateY(0deg)
                   rotateZ(0deg)`;
  });
  content.addEventListener('mousemove', e => {
    var w = content.clientWidth;
    var h = content.clientHeight;
    var y = (e.offsetX - w * 0.5) / w * ANGLE;
    var x = (1 - (e.offsetY - h * 0.5)) / h * ANGLE;

    content.style.transform = `perspective(300px)
                   rotateX(${x}deg)
                   rotateY(${y}deg)`;
  });
}
  1. 拓展内容:事实上,如果你已经完成过 wowjs 的插件化配置教程,直接将 wowpanels 视为一种动画样式,在完成了本帖教程的 1、2 两个步骤以后,使用那边的配置方案来添加 wowpanels 样式即可。例如给友链卡片添加浮动动画:
代码语言:javascript
复制
wowjs:
  enable: true #控制动画开关。true是打开,false是关闭
  animateitem:
    - class: site-card
      style: wowpanels
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础引入方案(通用)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档