网站首页 > 技术文章 正文
大家写轮播可能更多的用插件和一些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购物车结算页面)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)