js实现无缝滚动图(可控制当前滚动的方向)
发布时间 - 2026-01-10 23:13:05 点击率:次这个版本可以控制左右滚动,鼠标点击对应的广告会自动滑动把广告完全展示出来。还实现了记录当前滚动的方向,当鼠标离开,接着继续滚动!!!

效果图:
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style type = "text/css">
*{margin: 0; padding: 0;}
li { list-style: none; }
.box {
width: 800px;
height: 450px;
margin: 50px auto;
overflow: hidden;
position: relative;
}
.box span {
width: 40px;
height: 60px;
display: block;
position: absolute;
top: 225px;
margin-top: -20px;
cursor: pointer;
z-index: 1;
}
.box #left {
background: url('http://cdn.attach.qdfuns.com/notes/pics/201701/14/042311cbd7gbjd7sggkd2b.png') no-repeat;
left: 0;
display: none;
}
.box #right {
background: url('http://cdn.attach.qdfuns.com/notes/pics/201701/14/042241w8z4hx4m4pjhyjzs.png') no-repeat;
right: 0;
display: none;
}
#ad {
width: 4000px;
height: 450px;
position: absolute;
}
#ad li {
float: left;
}
</style>
<script type = "text/javascript">
window.onload = function(){
var ad = document.getElementById("ad");
var lef = document.getElementById("left");
var rig = document.getElementById("right");
var timer = null; //管理定时器
var aspect = true;
function animate(obj,speed){
//关闭上一个定时器
clearInterval(obj.timer);
//管理定时器
obj.timer = setInterval(autoAd,30);
function autoAd(){
//判断左走或者右走
if(speed > 0){
aspect = true;
if(obj.offsetLeft >= 0){
obj.style.left = -3200 + 'px';
}
}else {
aspect = false;
if(obj.offsetLeft <= -3200){
obj.style.left = 0;
}
}
//匀速动画: 盒子当前的位置 + 步长
obj.style.left = obj.offsetLeft + speed +"px";
}
}
animate(ad,-5);
//鼠标划入显示控制按钮并关闭
ad.parentNode.onmouseover = function(){
clearInterval(ad.timer);
lef.style.display = "block";
rig.style.display = "block";
};
//鼠标离开隐藏控制按钮并启动定时器
ad.parentNode.onmouseout = function(){
clearInterval(ad.timer);
clearInterval(timer);
lef.style.display = "none";
rig.style.display = "none";
if(aspect){
animate(ad,5);
}else{
animate(ad,-5);
}
};
ad.onclick = function(event){
//关闭自动轮播定时器
clearInterval(ad.timer);
clearInterval(timer);
var event = event || window.event;
if(event.target){
var target = - parseInt(event.target.alt) * 800;
}else{
var target = - parseInt(event.srcElement.alt) * 800;
}
timer = setInterval(function(){
var step = (target - ad.offsetLeft) / 10;
step = step > 0 ? Math.ceil(step):Math.floor(step);
ad.style.left = ad.offsetLeft + step + "px";
if(ad.offsetLeft%800 == 0){
clearInterval(timer);
}
},20)
}
//右移动
lef.onclick = function(){
clearInterval(timer);
animate(ad,5);
};
//左移动
rig.onclick = function(){
clearInterval(timer);
animate(ad,-5);
};
}
</script>
</head>
<body>
<div class="box">
<ul id="ad">
<li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153lscsitwp7sszb6zs.jpg" alt="0"></li>
<li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042152pfbkbfe8vbtvulfu.jpg" alt="1"></li>
<li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153u3jgn0ds43ndd3dz.jpg" alt="2"></li>
<li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042152juuohne22z60hbsb.jpg" alt="3"></li>
<li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153lscsitwp7sszb6zs.jpg" alt="4"></li>
</ul>
<span id="left"></span>
<span id="right"></span>
</div>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js
# 无缝滚动
# js实现无缝滚动
# js实现左右无缝滚动
# 彻底搞懂JS无缝滚动代码
# js 实现无缝滚动 兼容IE和FF
# div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
# jcarousellite.js 基于Jquery的图片无缝滚动插件
# js向上无缝滚动
# 网站公告效果 具体代码
# js实现图片无缝滚动特效
# 走马灯效果代码js appendChild实现的无缝滚动
# JS左右无缝滚动(一般方法+面向对象方法)
# Jquery与JS两种方法仿twitter/新浪微博 高度自适应无缝滚动实现代码
# js实现无缝滚动图
# 鼠标
# 鼠标点击
# 实现了
# 当鼠标
# span
# relative
# block
# absolute
# display
# height
# auto
# position
# hidden
# overflow
# cdn
# http
# url
# attach
# pics
# notes
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建安全的FTP站点?
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
千库网官网入口推荐 千库网设计创意平台入口
如何快速搭建自助建站会员专属系统?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
历史网站制作软件,华为如何找回被删除的网站?
node.js报错:Cannot find module 'ejs'的解决办法
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
敲碗10年!Mac系列传将迎来「触控与联网」双革新
javascript读取文本节点方法小结
javascript基本数据类型及类型检测常用方法小结
微信小程序 wx.uploadFile无法上传解决办法
如何在搬瓦工VPS快速搭建网站?
如何撰写建站申请书?关键要点有哪些?
如何快速选择适合个人网站的云服务器配置?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
bing浏览器学术搜索入口_bing学术文献检索地址
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
javascript中闭包概念与用法深入理解
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Laravel如何配置和使用缓存?(Redis代码示例)
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
C++时间戳转换成日期时间的步骤和示例代码
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
JavaScript如何实现类型判断_typeof和instanceof有什么区别
Python函数文档自动校验_规范解析【教程】
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
JavaScript中的标签模板是什么_它如何扩展字符串功能
WEB开发之注册页面验证码倒计时代码的实现
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
使用C语言编写圣诞表白程序
如何登录建站主机?访问步骤全解析
如何在宝塔面板创建新站点?
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
网站制作免费,什么网站能看正片电影?
微信小程序 canvas开发实例及注意事项
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
Laravel用户密码怎么加密_Laravel Hash门面使用教程
上一篇:swoole有什么好处
上一篇:swoole有什么好处

