首页 > web前端 > js教程 > 正文

js实现图片无缝滚动_javascript技巧

php中文网
发布: 2016-05-16 15:23:59
原创
1459人浏览过

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

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

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

效果图:

<!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> @@##@@ </li>
      <li> @@##@@</li>
      <li> @@##@@</li>
      <li> @@##@@</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程序设计有所帮助。

立即学习Java免费学习笔记(深入)”;

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号