实现了基本的效果, 做了个简易的效果, 可以触摸切换

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style type="text/css">* {padding: 0;margin: 0;}div {width: 100%;height: 350px;border: 1px solid red;max-width: 750px;margin: 0 300px;overflow: hidden;position: relative;}ul {display: flex;width: 4500px;position: absolute;}ul>li {list-style: none;width: 750px;height: 350px;border: 1px solid #00FFFF;}ul>li:nth-child(1) {background: url(img/niubi.jpg) no-repeat;}ul>li:nth-child(2) {background: url(img/xuexi.jpg) no-repeat;}ul>li:nth-child(3) {background: url(img/BTB.jpg) no-repeat;}ul>li:nth-child(4) {background: url(img/Miboy.jpg) no-repeat;}ul>li:nth-child(5) {background: url(img/car.jpg) no-repeat;}ul>li:nth-child(6) {background: url(img/niubi.jpg) no-repeat;}.trf {transition: left .4s ease;}</style></head><body><div><ul class="ul"><li></li>   <li></li>   <li></li>   <li></li>   <li></li>   <li></li>   </ul></div><script type="text/javascript">const div = document.querySelector('div')const ul1 = document.querySelector('.ul')const lis = document.querySelectorAll('ul li')let upperindex = 0, lastindex = 0let Percentage = 0.2, liWidth = 750let moveP = 0, themove, item = 0let time = null, path = 0//设置移动方法function move(e) {ul1.classList.remove('trf')upperindex = parseInt(e.clientX)themove = e.clientX - 300 + (-moveP) + itemul1.style.left = themove + 'px'}//当点击时添加musemove方法div.addEventListener('mousedown', e => {clearTimeout(time)lastindex = moveP = parseInt(e.offsetX)div.addEventListener('mousemove', move)})//当鼠标抬起时, 删除mousemove方法div.addEventListener('mouseup', () => {// console.log(upperindex, lastindex, liWidth * 0.3)ul1.classList.add('trf')//判断右边是否碰到末尾if(item === (-(lis.length-1) * 750)) {ul1.classList.remove('trf')ul1.style.left = 0 + 'px'item = 750}//判断滑动方向if((upperindex - (liWidth * 0.3)) < lastindex) {console.log('向左滑')item -= 750//判断滑动方向}else if((upperindex + (liWidth * 0.3)) >= lastindex) {console.log(item)//判断左边是否末尾if(item >= 0) {item = 0}else {console.log('向右滑')item += 750}}ul1.style.left = item + 'px'div.removeEventListener('mousemove', move)})//自动轮播function mytime() {ul1.classList.add('trf')if(path >= lis.length-1) {path = -1ul1.classList.remove('trf')}path++ul1.style.left = (path * (-750)) + 'px'time = setTimeout(mytime, 1000)}mytime()</script></body>
</html>

JavaScript原生实现轮播图的滑动切换相关推荐

  1. 原生JS无缝轮播图(左右切换、导航跟随)

    原生JS无缝轮播图(左右切换.导航图标) 功能: 1.实现轮播图的左右无缝切换 2.实现导航图标的跟随显示.点击切换 3.使用定时器进行无缝轮播 css部分 <style>/* 轮播图容器 ...

  2. 轮播图、阅读注册协议、网页时钟、随机点名、小米搜索框、轮播图点击切换——web APIs练习

    目录 一.获取元素(DOM) 1. 随机轮播图案例 2. 阅读注册协议(定时器间歇函数的应用) 3. 轮播图定时器版 4. 网页时钟 二.事件基础(DOM) 1. 随机点名案例 2. 轮播图点击切换( ...

  3. JS实现轮播图点击切换、按钮切换功能

    JS实现轮播图点击切换.按钮切换功能 前言 轮播图案例 总结 前言 轮播图的案例非常经典,写法也非常多,我在写一个自己用的比较多的写法,帮助大家理解,在网页的设计中,可以直接拿去用(记得换图片路径哦! ...

  4. 简单的手写jquery轮播图(包含切换按钮、小圆点)

    简单的手写jquery轮播图(包含切换按钮.小圆点) css代码 * {margin: 0;padding: 0; }.container {width: 800px;height: 400px;ma ...

  5. 原生javascript之实战 轮播图

    成品效果如下图所示: 因为博客园限制图片上传大小被我删了一些帧数,所以图片看起来会有一点卡,现实运行是不会的 搭建HTML和CSS结构 HTML代码如下: 1 <div class=" ...

  6. 轮播图动画滑动动画效果

    轮播图的实现原理并不难,但是步骤有些繁琐.最近练习了一个轮播图,大部分是跟着网上的教程写的,然后自己做了一点兼容ie8的修改,加了点击切换图片的特效和手机端的滑动特效,让这个轮播图可以在响应式的网站中 ...

  7. JavaScript实现网页轮播图

    轮播图也成为焦点图,是网页中比较常见的网页特效 一.功能: 1.鼠标经过轮播图模块,左右两边的按钮显示,鼠标离开轮播图模块,就隐藏左右按钮. 2.点击右(左)侧按钮一次,图片往左(右)播放一张,一以此 ...

  8. 【JavaScript】网页轮播图

    目录 HTML搭建 功能实现 小圆圈事件 左右按钮事件 自动播放 轮播图也叫焦点图,是网页中比较常见的网页特效. 功能: 鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮. 点击右侧按钮一次,图片往 ...

  9. 自己写的原生js轮播图插件

    时间有限,功能有待完善 <!DOCTYPE html> <html lang="en"><head><meta charset=" ...

最新文章

  1. OpenAI发布最新「模拟机器人环境」,用「真实机器人」模型进行训练
  2. java+构建+工具+Ant+Maven+Gradle
  3. matlab如何模拟竹蜻蜓飞行,JSBSim_Matlab 将 与 进行联合仿真 模拟飞行计算 247万源代码下载- www.pudn.com...
  4. c++ 获取文件的hashcode_jsp 实现文件上传和下载
  5. c语言指针++_C ++此指针| 查找输出程序| 套装3
  6. “横平竖直”进行连线+将相邻框进行合并
  7. java string 日期_java string类型日期比较
  8. SSH Iptables访问控制
  9. servlet ---- EL表达式
  10. 管理感悟:职责明确的结果,必然是无人管事
  11. 安装linux后找不到系统文件夹,安装ubuntu时“没有定义根文件系统”错误
  12. DOM DEM DLG DRG之间的区别
  13. android环信3.0v回撤,环信Android消息回撤
  14. 手把手教你扩展个人微信号(2)
  15. Java 基于WEB的农产品销售管理系统源码+数据库+论文文档+项目辅导视频
  16. golangci-lint 自定义linter核心代码 用于检查错误使用gtime.Time.Format() 例如gtime.Time.Format(“2006-01-02 15:04:05“)
  17. 图片批量重命名的2种好方法
  18. VR实时语音,带着最好的武器去战斗
  19. UBUNTU ROS 编译后无法rosrun package文件(已解决)
  20. igh ethercat应用层代码分析

热门文章

  1. Markdown语法中输入数学公式(MathJax)及特殊符号
  2. jQuery事件处理动画效果
  3. oracle闪回某个时间点的数据库,Oracle 闪回总结
  4. sharepoint是什么?
  5. 正规式和有限自动机二(NFA转DFA)
  6. 浅析游戏辅助工具的开发
  7. 作为程序员,是选择大厂加班,还是选择小公司摸鱼打卡?
  8. 防火墙的分类及其介绍
  9. 2021年起重机械指挥考试题及起重机械指挥模拟考试题
  10. Rust雪山怎么防冷_冬天卫生间太冷怎么办?这4样“防冷神器”少不了,你们家有吗...