js实现图片无缝滚动


Posted in Javascript onDecember 23, 2015

js无缝滚动效果几乎在任何网页上都能看到它的身影,有的可能是使用插件,其实使用原始的javascript比较简单。

主要的是使用js位置知识。

  • 1.innerHTML:设置或获取元素的html标签
  • 2.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距
  • 3.offsetWidth:设置或获取指定标签的宽度
  • 4.setInterval():设置方法定时启动
  • 5.clearInterval();清除定时器

效果图:

js实现图片无缝滚动

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>javascript scroll制作</title>
</head>
<body>
<style>
  /*conment*/
  *{
  margin: 0;
  padding: 0;
 }
 img{max-width: 100%;}
 .container{
  max-width: 620px;
  margin: 0 auto;
  padding-top: 50px;
 }
 .text-center{text-align: center;}
 .list-inline li{
  display: inline-block;
 }
 .hide{display: none;}
 hr{
  margin:20px 0; 
 }
 .tag{
  background-color: #ccc;
  padding: 5px 0;
 }
 .tag li{
  padding: 0 10px;
  border-left: 1px solid #fff;
  cursor:pointer;
 }
 .tag li:first-child{
  border-left: transparent;
 }
 .tag li.active{
  background-color: #ddd;
 }
 .scroll{
  position: relative;
  padding: 10px;
  margin-bottom: 20px;
  background-color: #ddd;
 }
 .wrap{
  overflow: hidden; 
 }
 .content{
  min-width: 3000px;
  height: 200px;
 }
 .content ul{
  float: left;
 }
 .content ul li{
  display: inline-block;
  max-width: 200px;
 }
 #prev,#next{
  width: 50px;
  height: 50px; 
  margin-top: -25px; 
  background-color: #ccc; 
  line-height: 50px; 
  text-align: center;
  cursor: pointer; 
 }
 #prev{
  position: absolute;
  left: 0;
  top:50%;
  border-radius: 0 25px 25px 0;
 }
 #next{
  position: absolute;
  right: 0;
  top:50%; 
  border-radius: 25px 0 0 25px;
 }
</style>
  <div class="container">
    <h1 class="text-center">图片滚动制作</h1>
    <hr>
  <div class="scroll">
   <div class="wrap" id="wrap">
    <div id="content" class="content" >
     <ul id="list1">
      <li> <img src="freelance.gif" alt=""> </li>
      <li> <img src="button.gif" alt=""></li>
      <li> <img src="load.gif" alt=""></li>
      <li> <img src="straw.gif" alt=""></li>   
     </ul>
     <ul id="list2">
     </ul>
    </div>
   </div>

   <div id="prev">
    prev
   </div> 
   <div id="next">
    next
   </div>   
  </div> 
  </div>
<script>
 var wrap=document.getElementById('wrap');
 var list1=document.getElementById('list1');
 var list2=document.getElementById('list2');
 var prev=document.getElementById('prev');
 var next=document.getElementById('next');
 //创建复制一份内容列表
 list2.innerHTML=list1.innerHTML;
 //向左循环滚动
 function scroll(){
  if(wrap.scrollLeft>=list2.offsetWidth){
   wrap.scrollLeft=0;
  }
  else{
   wrap.scrollLeft++;
  }
 }
  timer = setInterval(scroll,1);
 //鼠标停留使用clearInterval()
 wrap.onmouseover=function(){
  clearInterval(timer);
 }
 wrap.onmouseout=function(){
  timer = setInterval(scroll,1);
 }
 //向左加速
 function scroll_l(){
  if(wrap.scrollLeft>=list2.offsetWidth){
   wrap.scrollLeft=0;
  }
  else{
   wrap.scrollLeft++;
  }
 }
 //向右滚动
 function scroll_r(){
  if(wrap.scrollLeft<=0){
   wrap.scrollLeft+=list2.offsetWidth;
  }
  else{
   wrap.scrollLeft--;
  }
 }  
 prev.onclick=function(){
  clearInterval(timer);
  change(0)
 }
 next.onclick=function(){
  clearInterval(timer);
  change(1)
 }
 function change(r){
  if(r==0){
   timer = setInterval(scroll_l,60);
   wrap.onmouseout = function(){
    timer = setInterval(scroll_l,60);
   }
  }
  if(r==1){
   timer = setInterval(scroll_r,60);
   wrap.onmouseout = function(){
    timer = setInterval(scroll_r,60);
   }
  } 
 } 
</script> 
</body>
</html>

以上就是为大家分享的js实现图片无缝滚动代码,希望对大家的学习javascript程序设计有所帮助。

Javascript 相关文章推荐
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
Dec 27 Javascript
JS 文件大小判断的实现代码
Apr 07 Javascript
使用Post提交时须将空格转换成加号的解释
Jan 14 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
Aug 24 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
Feb 22 Javascript
tab栏切换原理
Mar 22 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
Jan 23 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
vue cli 3.x 项目部署到 github pages的方法
Apr 17 Javascript
layui 实现自动选择radio单选框(checked)的方法
Sep 03 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
Dec 23 #Javascript
js判断文本框输入的内容是否为数字
Dec 23 #Javascript
javascript新闻跑马灯实例代码
Jul 29 #Javascript
javascript动态添加checkbox复选框的方法
Dec 23 #Javascript
js仿微博实现统计字符和本地存储功能
Dec 22 #Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 #Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 #Javascript
You might like
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
bootstrap Table插件使用demo
2017/08/07 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
python实现广度优先搜索过程解析
2019/10/19 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
《青蛙看海》教学反思
2014/04/23 职场文书
农村党员一句话承诺
2014/05/30 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
标枪加油稿
2015/07/22 职场文书
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS