纯js实现悬浮按钮组件
#代码知识 发布时间: 2026-01-11
先上效果
下面附上代码 使用方式很简单只需要 在页面引入这段js 即可
$(()=> {
let param = {
tag: true,
num: 1,
ele: document.createElement('div'),
icon: '',
homeIcon: '',
moreIcon: '',
personalIcon: '',
closeIcon: '',
distance: '500',
css: "position:fixed;" +
"bottom:4rem;" +
"box-shadow:10px 10px 10px gray;" +
"right:10px;" +
"display:none;" +
"font-size:1.5rem;" +
"color:#fff;" +
"z-index:1000;" +
"height:2.5rem;" +
"width:2.5rem;" +
"background:#f44336;" +
"border-radius:50%;" +
"line-height:2.5rem;" +
"text-align:center",
menuCss: "position:absolute;" +
// "bottom:3rem;" +
"display:none;" +
"box-shadow:10px 10px 10px gray;" +
"font-size:1.2rem;" +
"color:#fff;" +
"background:orange;" +
"height:2rem;" +
"width:2rem;" +
"border-radius:50%;" +
"text-align:center;" +
"line-height:2rem;"
// type: '#top'
};
{
document.querySelector('body').appendChild(((ele)=> {
ele.className = 'scroll iconfont';
ele.innerHTML = param.moreIcon;
// ele.href = param.type;
ele.style.cssText = param.css;
for (let i = 0; i < 3; i++) {
let menu_personal = document.createElement('a');
menu_personal.className = 'iconfont';
menu_personal.style.cssText = param.menuCss;
switch (i) {
case 0:
setStyle(menu_personal, '#2196f3', '2.4rem', '2.4rem', param.homeIcon, 'home');
break;
case 1:
setStyle(menu_personal, '#4caf50', 0, '3.5rem', param.personalIcon, 'personal');
break;
case 2:
setStyle(menu_personal, '#fdd835', '3.5rem', '0', param.icon, 'top');
break;
}
param.ele.appendChild(menu_personal);
}
return ele;
})(param.ele));
function setStyle(ele, ...args) {
ele.style.background = args[0];
ele.style.bottom = args[1];
ele.style.right = args[2];
ele.innerHTML = args[3];
ele.id = args[4];
}
}
{
$(window).scroll(()=> {
var scrollValue = $(window).scrollTop();
if (scrollValue > param.distance) {
if (param.tag) {
$(param.ele).css('display', 'block').animateCss('fadeInRight');
param.tag = !param.tag;
}
} else {
if (!param.tag) {
$(param.ele).css('display', 'none');
$(param.ele).children().css('display', 'none');
param.num++;
param.tag = !param.tag;
}
}
});
$(param.ele).click((e)=> {
window.e = e;
switch (e.target.id) {
case 'home':
if (!getTypeNative()) {
window.location.href = getAbsolutePath() + '/fenqihui/pages/recommended/recommended_index.html';
} else if (getTypeNative() === 'ios') {
backHome();
} else if (getTypeNative() === 'android') {
android.backHome();
}
break;
case 'personal':
if (!getTypeNative()) {
window.location.href = getAbsolutePath() + '/fenqihui/pages/account/user_personal.html';
} else if (getTypeNative() === 'ios') {
//todo://前往个人中心
backAccount();
} else if (getTypeNative() === 'android') {
android.backAccount();
}
break;
case 'top':
$(window).scrollTop(0);
break;
}
param.num % 2 == 0 && $(param.ele).children().css('display', 'none') || $(param.ele).children().css('display', 'block').animateCss('swing');
param.num++;
})
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
代码知识SEO上一篇 : 浅谈Android实践之ScrollView中滑动冲突处理解决方案
下一篇 : 关于swift的个人小结
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!