js实现无缝滚动特效


Posted in Javascript onDecember 20, 2015

本文实例为大家介绍了js实现无缝滚动特效需要做到的功能,以及关键性js代码,分享给大家供大家参考,具体内容如下

运行效果图:

js实现无缝滚动特效

结合下学了的知识,做个模拟的综合性扩展练习~~  大致功能如下:

  • 1、点开html后,图片自动移动展示
  • 2、点击左右方向,可以改变 图片移动的方向(改变left的值,正负)
  • 3、鼠标移入移出图片后,图片暂停移动(setInterval,clearInterval)
  • 4、鼠标移到图片上,高亮(a:hover)
  • 5、点击小图, 下面的大图会改变
  • 6、文字区域随着图片的变化而变化(未成功,有待提高)

 具体代码:

window.onload = function(){

//声明部分( 现在的习惯是要写什么声明什么, 一起写容易搞忘了。。也不知道好不好这样)


var oDiv = document.getElementById('box');


var oUl = oDiv.getElementsByTagName('ul');


var oLi = oUl.getElementsByTagName('li');


var speed = 2;


var timer = null;


 


//让ul的内容增一倍,从而实现无缝滚动


oUl.innerHTML = oUl.innerHTML + oUl.innerHTML;


oUl.style.width = oLi[1].offsetWidth * oLi.length + 'px';


//move函数


function move(){


oUl.style.left = oUl.offsetLeft + speed + 'px';


//控制左


if(oUl.offsetLeft < -oUl.offsetWidth/2){


oUl.style.left = 0;


}



//控制右


if(oUl.offsetLeft > 0){


oUl.style.left = -oUl.offsetWidth/2 + 'px';


}


}



//图标点击~ 控制移动方向



var oLeft = document.getElementById('jt_left');


var oRight= document.getElementById('jt_right');



oLeft.onclick = function(){


speed = -2;


}



oRight.onclick = function(){


speed = 2;


}



//鼠标移入移出效果



oDiv.onmouseover = function(){



clearInterval(timer);


}



oDiv.onmouseout = function(){



timer = setInterval(move,20);


}


timer = setInterval(move,20); 



//点击获取大图







var aA = oDiv.getElementsByTagName('a');


for(var i=0;i<aA.length;i++){



aA[i].onclick = function(){




showPic(this);




return false;



}


}





function showPic(whichpic){



var source = whichpic.href;



var placeholder = document.getElementById('placeholder');



placeholder.src = source;


}

}

最后文字的替换效果 ,本想用图片的方式,让文本框对应的数字跟着变~~ 结果未能成功,不知原因,这方面还需待提高,希望大家能提供一些好的建议,不过js实现无缝滚动还是正常实现了,希望对大家也能有所帮助。

Javascript 相关文章推荐
超全面的vue.js使用总结
Feb 12 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
Vue学习之路之登录注册实例代码
Jul 06 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
JavaScript生成简单等差数列
Nov 28 Javascript
node app 打包工具pkg的具体使用
Jan 17 Javascript
Node.js 多线程完全指南总结
Mar 27 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
Apr 15 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 Javascript
vue监听键盘事件的相关总结
Jan 29 Vue.js
基于JavaScript实现动态创建表格和增加表格行数
Dec 20 #Javascript
原生js页面滚动延迟加载图片
Dec 20 #Javascript
javascript实现的网站访问量统计代码
Dec 20 #Javascript
js实现n秒倒计时后才可以点击的效果
Dec 20 #Javascript
图解js图片轮播效果
Dec 20 #Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
Dec 20 #Javascript
基于jquery实现页面滚动到底自动加载数据的功能
Dec 19 #Javascript
You might like
法压式咖啡之制作法
2021/03/03 冲泡冲煮
PHP+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
php技巧小结【推荐】
2017/01/19 PHP
PHP的PDO预处理语句与存储过程
2019/01/27 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
2007/03/27 Javascript
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
骨干教师培训制度
2014/01/13 职场文书
中年人生感言
2014/02/04 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
Python中字符串对象语法分享
2022/02/24 Python