高级无缝滚动轮播图
时间:2021-08-16
本文章向大家介绍高级无缝滚动轮播图,主要包括高级无缝滚动轮播图使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
改进:
- 折返点计算需要通过 js 自动计算.
取消<ul>
的width
属性, 通过offsetWidth
返回宽度(包括边框).
var back = -munit.offsetWidth;
- 自动生成另一组对应的图片结构
<li>
.
munit.innerHTML = munit.innerHTML + munit.innerHTML;
注意:
如果没有onload, offsetWidth返回的值是错误的. 图片还没有加载完就会先执行后面的JavaScript代码, 导致offsetWidth的值小于<ul>
的宽度.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.scroll {
position: relative;
width: 830px;
height: 130px;
border: 10px solid #000;
margin: 100px auto;
overflow: hidden;
}
.scroll .inner {
position: relative;
width: 5000px;
}
.scroll ul {
position: absolute;
top: 0;
left: 0;
height: 130px;
list-style: none;
}
.scroll ul li {
float: left;
margin-right: 10px;
}
</style>
</head>
<body>
<div class="scroll" id="scroll">
<div class="inner">
<ul id="munit">
<li><img src="images/shuzi/0.png" alt="" /></li>
<li><img src="images/shuzi/1.png" alt="" /></li>
<li><img src="images/shuzi/2.png" alt="" /></li>
<li><img src="images/shuzi/3.png" alt="" /></li>
<li><img src="images/shuzi/4.png" alt="" /></li>
<li><img src="images/shuzi/5.png" alt="" /></li>
<li><img src="images/shuzi/6.png" alt="" /></li>
</ul>
</div>
</div>
<script>
onload = function () {
var scroll = document.getElementById("scroll");
var munit = document.getElementById("munit");
console.log(scroll);
console.log(munit);
var back = -munit.offsetWidth;
console.log(back);
//生成两倍的li标签
munit.innerHTML = munit.innerHTML + munit.innerHTML;
//初始位置 (自己进行滚动播放)
var nowLeft = 0;
var timer;
timer = setInterval(run, 10);
//鼠标移上 scroll 元素,让运动停止
scroll.onmouseover = function () {
clearInterval(timer);
};
//鼠标离开 scroll 元素,让运动重新开始
scroll.onmouseout = function () {
timer = setInterval(run, 10);
};
//运动函数
function run() {
//nowLeft自减
nowLeft -= 2;
// 每次都要判断,是否走到了折返点,如果走到了,瞬间切换到 0
if (nowLeft <= back) {
nowLeft = 0;
}
munit.style.left = nowLeft + "px";
}
}
</script>
</body>
</html>
原文地址:https://www.cnblogs.com/charonmomo/p/15149310.html
- 【自然框架】之通用权限(八):权限到字段(列表、表单、查询)
- 【自然框架】之通用权限(七):权限到按钮
- 通过预测API窃取机器学习模型
- 【自然框架】 页面里的父类——把共用的东东都交给父类,让子类专注于其他。
- 血淋林的例子告诉你,为什么防“上传漏洞”要用白名单
- 关于Int自增字段和GUID字段的性能测试。只有测试,没有分析,呵呵
- 【自然框架】 之 资源角色——列表过滤方案(思路篇)
- UVM(七)之phase及objection
- 【自然框架】 之 主从表的添加、修改
- HLS Lesson6-数据类型转换
- 某开源框架从注入到Getshell
- HLS Lesson4-例子
- Docker初探(一)-有关docker的介绍和简单使用
- MySQL绕过WAF实战技巧
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode 87,因为题目晦涩而被点了1500+反对的搜索问题
- LeetCode 87,远看是字符串其实是搜索,你能做出来吗?
- Golang中的interface是干嘛的?从面向对象中的多态与接口开始说起……
- pandas | DataFrame基础运算以及空值填充
- C++设计模式笔记(08) - Factory Method工厂方法
- 【Code】GraphSAGE 源码解析
- Kafka常见的导致重复消费原因和解决方案
- 近30个MySQL常用函数,必须推荐!
- 搞定 CompletableFuture,并发异步编程和编写串行程序还有什么区别?你们要的多图长文
- 用注解实现 MyBatis 开发
- MyBatis 实现数据的增删改查
- 0790-5.16.2-NameNode服务的edits不同步异常
- 0789-不停止MySQL服务重做备库的方法
- 防盗链Apache和Nginx配置对比
- Python 类特殊方法__getitem__