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提升性能最佳实践小结
Dec 06 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
Jan 21 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
JS根据生日算年龄的方法
May 05 Javascript
js添加千分位的实现代码(超简单)
Aug 01 Javascript
解析利用javascript如何判断一个数为素数
Dec 08 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
Dec 21 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
Apr 26 Javascript
微信小程序 wx.request方法的异步封装实例详解
May 18 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
Vue实现点击显示不同图片的效果
Aug 10 Javascript
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
使用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
使用adodb lite解决问题
2006/12/31 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
How to Auto Include a Javascript File
2007/02/02 Javascript
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
js调用图片隐藏&amp;显示实现代码
2013/09/13 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
js实现数组转换成json
2015/06/26 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
VUE重点问题总结
2018/03/19 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
一些Solaris面试题
2015/12/22 面试题
企业统计员岗位职责
2013/12/13 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP