网站首页 > 技术文章 正文
大家写轮播可能更多的用插件和一些ui库,对于轮播具体是怎么实现的却没有深究过。今天带大家来感受一下自己写轮播不一样的思维。
首先第一步。获取服务端给的图片数据。
这个是通过axios或者ajax通过接口获取的,就不一一述说了。 拿到图片数据。
['微信图片_20220308173249.jpg', '微信图片_20220425172701.png', '微信图片_20220427111835.jpg']
复制代码
第二步 循环渲染到界面
function showSwiper () {
var s = '';
var btn = '';
$.each(data, function (idata, dataobj) {
if(idata === pageparam.curent) {
s += `<img class = "elementToFadeInAndOut" src="/image/${pageparam.tpdir}/${dataobj}"style="width:100%;height:100%;object-fit: cover;" alt="" srcset="" ">`;
btn += `<a href="#" style="width: 20px;height: 20px;text-align: center;line-height: 20px;font-size: 12px;color: #fff;background: #007aff;border-radius: 50%;margin:0 4px;" onclick = "tabFn(${idata})">${idata}</a>`
}else{
s += `<img class = "elementToFadeInAndOut" src="/image/${pageparam.tpdir}/${dataobj}" style="width:100%;height:100%;display:none;object-fit: cover;" alt="" srcset="" ">`;
btn += `<a href="#" style="width: 20px;height: 20px;text-align: center;line-height: 20px;font-size: 12px;color: #000;background: rgba(0, 0, 0, 0.2);border-radius: 50%;margin:0 4px;" onclick = "tabFn(${idata})" >${idata}</a>`
}
});
$('#swiperlist').html(s);
$('#swiperbtn').html(btn);
}
复制代码
第三步 写切换按钮事件
function tabFn (index) {
if(index !== pageparam.curent) {
pageparam.curent = index;
showSwiper();
}
}
复制代码
第三步 写前一张,后一张按钮事件
function prevFn () {
if(pageparam.curent > 0) {
pageparam.curent --;
showSwiper()
}
}
function nextFn () {
if(pageparam.curent < data.length-1) {
pageparam.curent ++ ;
showSwiper()
}
}
复制代码
总结一下,我这边总的思路是拿到图片数据,渲染视图,渲染视图的同时给img激活样式,动画以及切换btn添加点击事件和激活样式。然后切换的时候重新渲染dom,next和prev的时候重新渲染dom。 最后来张图。
猜你喜欢
- 2024-09-11 浅析MySQL Join Reorder算法(mysqlinner join)
- 2024-09-11 js 小函数(js函数总结)
- 2024-09-11 Kubernetes 高性能网络组件 Calico 入门教程
- 2024-09-11 jQuery中的clone妙用(jquery.on)
- 2024-09-11 自定义一个"骚气"的jQuery
- 2024-09-11 前端单元测试以及自动化构建入门(前端单元测试是什么)
- 2024-09-11 Python全栈 Web(jQuery 一条龙服务)
- 2024-09-11 jQuery遍历说、详解与示例的结合,轻松搞定这个遍历!
- 2024-09-11 「clickhouse专栏」对标mongodb存储类JSON数据文档统计分析
- 2024-09-11 jQuery实现简易购物车功能(jquery购物车结算页面)
- 1522℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 641℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 527℃MySQL service启动脚本浅析(r12笔记第59天)
- 492℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 492℃启用MySQL查询缓存(mysql8.0查询缓存)
- 479℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 461℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 459℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)